Phonegap:灵活的iOS应用程序更新(无应用商店)

Phonegap: flexible iOS app update (No AppStore)

本文关键字:应用 更新 应用程序 iOS Phonegap      更新时间:2024-02-01

我有一个Phonegap iOS应用程序。我的应用程序是私人分发的,因此现在和将来都不会使用应用程序商店。该应用程序与自制中间件进行通信。为了管理应用程序更新,我考虑做一些类似的事情:

->在应用程序启动时,检查是否有更新的版本。

->如果是,则调用一个自制的Javascript模块,该模块将利用HTML5文件I/O API,以便根据中间件的输出更新/创建/删除文件。

  • 在你看来;这个解决方案可靠吗?

  • 有其他选择吗?(应用商店完全不在画面中)

使用PhoneGap/Cordova应用程序,您通常会从本地www文件夹加载文件。在运行时更新文件的问题是,您无法写入www位置,只能写入应用程序的"文档"文件夹。

我假设您使用的是Enterprise分发版,因为您是在没有应用商店的情况下分发的。如果你对用户必须去检查更新感到高兴,你可以考虑使用TestFlight之类的东西来分发更新。

您也可以取消TestFlight,自己托管ipa文件,检查更新,然后要求用户下载并安装更新。

编辑

无论有没有插件,都无法写入www文件夹。这是由于iOS的限制,而不是PhoneGap/Cordova的限制。

这些链接讨论通过空中传送分发企业应用程序http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html

通过OTA 进行IOS企业分发

企业内部应用程序分发

我考虑使用www文件夹作为引导程序,在文档目录中的www文件夹中下载实际的应用程序,并从那里加载index.html页面(以及应用程序的其余部分)

我想知道这是否是的一个选项

当然,ObjectiveC UIWebView会指向下载的版本,如果它存在

我知道这是一个老问题,但公认的答案不再正确。以下是一个完整的项目,展示了如何做到这一点:https://github.com/ben-ng/phonegap-air

简而言之,诀窍是不要写入应用程序捆绑包,而是写入Documents目录。

还有一个名为Trigger.io的替代服务。它很像phonegap,但它的关键功能之一是可以让你在设备上"重新加载"应用程序,这基本上就是你想要的,AFAICT。

因此cordava似乎只能加载应用程序捆绑包中的文件。您不能简单地更改webroot参数来获取文档文件夹。

您可以使用FileReader API从持久存储中进行读取。这意味着你必须在应用程序包中创建某种引导程序html/javascript,并创建从持久存储加载内容的代码(你可以随时更新)

这是一个很好的开始寻找的地方:Cordava File API docs