使用Phonegap捆绑资产

时间:2012-12-01 23:43:01

标签: javascript ios cordova

我们正在使用Phonegap创建iOS应用,并且无法打包一些预制资源。该应用程序旨在脱机使用,并涉及使用leaflet.js显示一些地图图层。

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

如果有人能够对Phonegap捆绑的assets的最佳做法有所了解,那就太棒了!

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

1 个答案:

答案 0 :(得分:0)

文件系统插件不允许访问只读应用程序包,但这不是在浏览器中运行时获取数据的唯一方法 - XHR到文件URL(应用程序包是父的www文件夹)应该工作得很好。

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

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

顺便提一下,如果您将文件放在文档中,首次使用下载方法可能无法通过应用商店评论。