2010-07-15 79 views
2

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

是否有任何情况下,UIWebview无法做到这一点可以在Safari中完成?

+1

你能更具体吗?询问你需要做什么_。 – rfunduk 2010-07-15 15:35:58

+0

我正计划使用UIWebView构建一个可充当浏览器的应用程序。所以我的疑问是,浏览速度会有什么差异,如果我使用UIWebView作为浏览器,并且UIWebView是否缺乏关于浏览,处理Javascript或其他任何功能的功能? – Krishnan 2010-07-16 04:28:42

+0

我有一个令人头痛的问题,在一个框架页面上获得基本认证以在UIWebView上工作,特别是对于iOS3.2。 – 2010-08-04 06:23:54

回答

2

首先,每个应用程序都有一个单独的Cookie存储。因此,如果用户在Safari中的站点X上有一些首选项,则它不会在浏览器中的站点X中具有这些首选项,反之亦然。除此之外,UIWebView非常类似于真实的东西。

+0

谢谢mvds。我可以理解,我无法分享iPhone Safari和我计划创建的本机App浏览器之间的任何内容。我们能否实现自动补充功能? – Krishnan 2010-07-16 04:33:30

0

您无法使用UIWebView组件公开的API来轻松构建模仿Safari浏览器的应用程序。首先,请查看UIWebView委托方法。当您想要加载的页面中有框架时,可能很难判断用户是否点击了iframe /框架内的内容或点击了主文档中的链接。

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

0

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

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

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

所以基本上苹果禁止这个,因为它允许它破坏App Store提供的安全性,并使iOS更容易受到攻击。他们可以允许Safari访问Safari,因为他们可以控制Safari的功能,但他们不能相信别人不会滥用该功能。

相关问题