我想随我的 iPhone 应用程序发布一个配置文件,并在需要时安装它。
注意,我们说的是配置配置文件,不是供应配置文件。
首先,这样的任务是可能的。如果在网页上放置配置文件并从 Safari 中单击它,就会安装它。如果您通过电子邮件发送配置文件并单击附件,它也将安装。在这种情况下,“ Installed”意味着“调用了安装 UI”——但我甚至无法做到这一点。
因此,我的工作理论是,启动一个配置文件安装需要导航到它作为一个 URL。我将这个配置文件添加到我的应用程序包中。
A) 首先,我尝试将[ sharedApp openURL ]与文件://URL 放入我的捆绑包中,但没有这样的运气——什么都没有发生。
B) 然后我在捆绑包中添加了一个 HTML 页面,该页面有一个到概要文件的链接,并将其加载到 UIWebView 中。点击链接什么也不做。然而,在 Safari 中从 Web 服务器加载一个相同的页面可以很好地工作——链接是可点击的,配置文件是安装的。我提供了一个 UIWebViewCommittee,对每个导航请求都回答 YES-没有区别。
C) 然后我尝试从 Safari 的 bundle 中加载相同的 Web 页面(使用[ sharedApp openURL ]-什么都没有发生。我猜,Safari 不能看到我的应用程序包中的文件。
D) 在 Web 服务器上上传页面和配置文件是可行的,但是在组织层面上是一个痛苦,更不用说额外的故障来源(如果没有3G 覆盖怎么办?等)。
因此,我最大的问题是: * * 如何以编程方式安装配置文件?
这些小问题是: 什么可以使一个链接在 UIWebView 中不可点击?是否可以在 Safari 中从 天啊包加载文件://URL?如果没有,是否有一个本地位置在 iPhone 上,我可以放置文件和 Safari 可以找到他们?
编辑关于 B) : 强 > 问题在于某种程度上,我们正在链接到一个配置文件。我把它重新命名为。Mobile config 到。XML (’因为它实际上是 XML) ,修改了链接。这个链接在我的 UIWebView 中起作用了。重新命名了,还是老样子。看起来 UIWebView 似乎不愿意做应用程序范围的事情——因为个人资料的安装关闭了应用程序。我试图告诉它,它的 OK-通过手段的 UIWebViewgenerate-但这并不令人信服。Mailto 的相同行为: UIWebView 中的 URL。
对于 mailto: URL,常用的技术是将它们转换为[ openURL ]调用,但是这种方法在我的案例中并不太管用,请参见场景 A。
然而,对于 itms: URL,UIWebView 可以正常工作..。
编辑2: 尝试通过[ openURL ]向 Safari 提供一个数据 URL-但没有成功,参见这里: < a href = “ https://stackoverflow. com/questions/641461/iPhone-Open-DATA-URL-In-Safari”> iPhone Open DATA: URL In Safari
编辑3: 找到了很多关于 Safari 不支持 file://URL 的信息。然而,UIWebView 在很大程度上做到了这一点。而且,模拟器上的 Safari 可以很好地打开它们。后一点是最令人沮丧的。
编辑4: 我从来没有找到一个解决办法。相反,我整合了一个两位的 Web 界面,用户可以在其中通过电子邮件订购个人资料。