uiwebview和移动Safari浏览器之间的区别

看了很多信息,没有find明确的名单。 请添加您的观察。 我相信它会派上用场。

它没有Nitro Javascript引擎。 与Safari相比,这使得在UIWebView中执行Javascript的速度要慢得多。

http://www.tuaw.com/2011/03/18/apple-confirms-some-webkit-optimizations-unavailable-to-ios-apps/

http://ariya.ofilabs.com/2012/06/nitro-javascriptcore-and-jit.html

有一件事我发现,对我的暂时的悲哀是,通过JS设置样式值, UIWebView是更严格。 所以说在移动Safari浏览器

 element.style.width = 300; 

将工作得很好,但在UIWebView您必须将值设置为

 element.style.width = 300 + "px"; 

还有其他的差异,我发现很慢。 我会像我一样更新它。

当UIWebView滚动其内容时,它会冻结所有JavaScript事件直到滚动结束。 所以你绝对不能以这种常见的方式以编程方式观察和/或控制滚动过程:

 window.onscroll = function() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; // do something } 

因为variables“滚动”只会更新一次 – 滚动完成后。

您可以将Mobile Safari中HTML5 SQL的初始最大大小设置为50MB,但UIWebView似乎限制为5MB。 它拒绝任何更高的。

我遇到的两个明显的是身份validation和带有框架的页面。

对于身份validation,UIWebView不会自动处理身份validation挑战,由开发人员来处理。

对于具有框架集的页面,UIWebView不会跟踪框架内页面转换的浏览历史logging,这可能是一个理想的function。 它需要一些摆弄来完成这一点。

说到性能,这是你可能find的最好的总结: http : //www.guypo.com/mobile/ios-browsers-speed-bakeoff/

主要的区别是附在页面顶部的地址/search栏和用户代理。

(注意:还有很多其他的,但这些通常很重要)