Javascript 将资产与Phonegap捆绑

Javascript 将资产与Phonegap捆绑,javascript,ios,cordova,Javascript,Ios,Cordova,我们正在使用Phonegap创建iOS应用程序,在打包一些预制资源时遇到了问题。该应用程序设计为离线使用,包括使用传单.js显示一些地图图层 我们这样做的方式是使用.mbtiles文件和特定格式的SQLite文件,以及一个自定义的传单.js TileLayer。目前,基础层是在第一次运行时下载的,但是理想情况下,基础层将与应用捆绑在一起,因为它是1-2gb。据我所知,这在iOS上相当容易,因为您可以将文件打包为资源,但使用Phonegap API只允许访问Documents目录 如果有人能为Ph

我们正在使用Phonegap创建iOS应用程序,在打包一些预制资源时遇到了问题。该应用程序设计为离线使用,包括使用传单.js显示一些地图图层

我们这样做的方式是使用.mbtiles文件和特定格式的SQLite文件,以及一个自定义的传单.js TileLayer。目前,基础层是在第一次运行时下载的,但是理想情况下,基础层将与应用捆绑在一起,因为它是1-2gb。据我所知,这在iOS上相当容易,因为您可以将文件打包为资源,但使用Phonegap API只允许访问Documents目录

如果有人能为Phonegap捆绑资产的最佳实践提供一些启示,那就太好了


如果需要更多信息,请告诉我。

文件系统插件不允许访问只读应用程序包,但这不是在浏览器中运行时获取数据的唯一方法-对文件url的XHR应用程序包是www文件夹的父文件夹应该可以正常工作

也就是说,定制插件似乎更适合这种情况。由于基本要求是自定义位置的SQLite数据库,因此您可以尝试从init/openDb代码开始并修改该代码,以使用应用程序包中的文件

另一种选择是生成所有图像文件并将其包含在应用程序包中——这样会获得更好的性能,因为SQLite和javascript并不特别擅长处理二进制数据


顺便说一句,如果您将文件放入文档中,首次使用下载方法可能无法通过app store审查。

谢谢。我们尝试了XHR解决方案,但没有成功,于是想到了SQLite插件,但这里缺少Obj-C技能意味着这将是最后的选择。感谢您确认我并没有遗漏API中允许我们所需的部分,现在我们可以继续前进了!app store review被拒绝的原因很有趣-为什么?文档中的文件默认会备份到iCloud-您不应该将其用于非用户创建的任何内容,如果丢失,您可以再次下载。