我有一个Phonegap iOS应用程序。我的应用程序是私下分发的,因此存在且不会使用应用程序商店。该应用程序与自制中间件进行通信。为了管理应用更新,我想做了类似的事情:
- >在应用开始时,检查是否有更新的版本。
- >如果是,则调用自制的Javascript模块,该模块将利用HTML5文件I / O API,以便根据中间件的输出更新/创建/删除文件。
在您看来;这个解决方案可靠吗?
还有其他选择吗? (应用程序商店完全没有图片)
答案 0 :(得分:4)
使用PhoneGap / Cordova应用程序,您通常会从本地www文件夹中加载文件。在运行时更新文件的问题是您无法写入www位置 - 您只能写入应用程序的'documents'文件夹。
我假设您使用的是企业版,因为您在没有应用商店的情况下进行分发。如果您对用户必须去检查更新感到高兴,您可以使用TestFlight之类的内容来分发更新。
您也可以自行删除TestFlight并托管ipa文件,检查更新,然后要求用户下载并安装更新。
修改强>
无论有没有插件,都无法写入www文件夹。这是由于iOS限制而不是PhoneGap / Cordova限制。
这些链接谈论通过无线方式分发企业应用程序 http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
答案 1 :(得分:2)
我正在考虑使用www文件夹作为引导程序将实际应用程序下载到文档目录中的www文件夹中,然后从那里(以及应用程序的其余部分)加载index.html页面
我想知道这是否是一个选项
当然,ObjectiveC UIWebView会指向下载的版本(如果存在)
答案 2 :(得分:2)
我知道这是一个老问题,但接受的答案不再正确。这是一个完整的项目,展示如何完成:https://github.com/ben-ng/phonegap-air
简而言之,诀窍是不要写入应用程序包,而是写入Documents目录。
答案 3 :(得分:1)
有一项名为Trigger.io的替代服务。它很像phonegap,但它的一个主要特点是它可以让你“reload”设备上的应用程序,这基本上就是你所寻找的,AFAICT。
答案 4 :(得分:0)
因此,似乎cordava只能加载应用程序包中的文件。您不能简单地更改webroot参数以获取文档文件夹。
您可以使用FileReader API从持久性存储中读取。这意味着您将不得不在应用程序包中创建某种类型的引导程序html / javascript,并创建从持久性存储中加载内容的代码(您可以随时自行更新)
这是一个开始寻找的好地方:Cordava File API docs