4

我有一个 Phonegap iOS 应用程序。我的应用程序是私下分发的,因此有并且不会使用应用程序商店。该应用程序与自制中间件进行通信。为了管理应用程序更新,我考虑过执行以下操作:

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

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

  • 依你的意见; 这个解决方案可靠吗?

  • 有没有其他选择?(应用商店完全没有画面)

4

5 回答 5

4

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

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

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

编辑

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

这些链接讨论无线分发企业应用程序 http://developer.apple.com/library/ios/#featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html

IOS企业通过OTA分发

企业内部应用程序分发

于 2012-07-27T08:37:47.250 回答
2

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

我想知道这是否是一个选择

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

于 2012-09-28T10:17:03.867 回答
2

我知道这是一个老问题,但接受的答案不再正确。这是一个完整的项目,展示了它是如何完成的:https ://github.com/ben-ng/phonegap-air

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

于 2014-11-17T12:25:39.683 回答
1

有一个名为Trigger.io的替代服务。它很像phonegap,但它的一个关键特性是它可以让你在设备上“重新加载”应用程序,这基本上就是你正在寻找的东西,AFAICT。

于 2013-01-28T07:18:15.197 回答
0

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

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

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

于 2012-10-02T20:22:01.783 回答