- > 在应用程序启动时,检查是否有更多更新版本可用。 - > 如果是,则调用自制的 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
我知道这是一个老问题,但是被接受的答案已经不正确了。以下是一个完整的项目,展示如何完成:https://github.com/ben-ng/phonegap-air
简而言之,技巧是不要写入应用程序包中,而是写入文档目录。
我在考虑使用www文件夹作为引导程序,在文档目录的www文件夹中下载实际应用程序,并从那里加载index.html页面(以及应用程序的其余部分)。
我想知道这是否是一个选项。
当然,如果已经存在下载版本,ObjectiveC UIWebView将指向该版本。
看起来 Cordova 只能加载在应用程序包中的文件。您不能简单地更改 Webroot 参数以使用文档文件夹。
您可以使用 FileReader API 从持久存储中读取内容。这意味着您需要创建一些引导式 HTML / JavaScript,放在应用程序包中并创建代码,从持久存储库中加载内容(您随时可以自己更新)
这是一个很好的起点:Cordova 文件API文档