UIWebView可以取代Safari吗?

时间:2010-07-15 15:27:14

标签: iphone uiwebview

我们可以使用完全模仿Safari浏览器的UIWebView构建应用程序吗?

是否存在UIWebview无法在Safari中执行的任何操作?

3 个答案:

答案 0 :(得分:2)

首先,每个应用都有一个单独的cookie存储空间。因此,如果用户在Safari中的站点X处具有某些首选项,则在浏览器中的站点X处将不具有这些首选项,反之亦然。除此之外,UIWebView非常像真实的东西。

答案 1 :(得分:0)

您无法使用UIWebView组件公开的公共API轻松构建模拟Safari浏览器的应用程序。首先,请查看UIWebView委托方法。如果您要加载的页面中有框架,则可能很难确定用户是否在iframe /框架内单击或单击主文档中的链接。

使用UIWebView组件处理具有无效证书的站点的身份验证也很困难,尤其是当通过单击iframe内的链接到达具有无效证书的站点时。

答案 2 :(得分:0)

在UIWebView中渲染内容将比在Safari中慢得多。

Safari的Javascript引擎使用“及时”编译器。它将传入的Javascript代码转换为可直接在iOS设备的ARM CPU上运行的机器代码。这允许Javascript代码以类似于本机应用程序代码的速度运行。

问题是Apple不信任具有这种能力的第三方开发者。如果第三方应用程序有能力将Javascript转换为机器代码并运行它,那么该应用程序也可以下载并运行其他机器代码 - 而且Apple永远不会有机会查看该代码。 App Review批准后,(开发人员/黑客)可以将下载的代码更改为记录您的密码或其他内容的内容。并且没有办法仅将此权限授予UIWebView而不授予应用程序的其他部分,因为UIWebView在与开发人员代码相同的过程中运行。

所以基本上Apple禁止这样做,因为允许它会破坏App Store提供的安全性并使iOS更容易受到攻击。他们可以允许它用于Safari,因为它们可以控制Safari的功能,但是他们不能相信其他人不会滥用这种能力。