我们正在使用Phonegap创建iOS应用,并且无法打包一些预制资源。该应用程序旨在脱机使用,并涉及使用leaflet.js
显示一些地图图层。
我们这样做的方法是使用.mbtiles
文件(具有特定格式的SQLite文件)和自定义leaflet.js
TileLayer。目前,基础层是在第一次运行时下载的,但理想情况下,基础层将与应用程序捆绑在一起(它是1-2gb)。据我所知,这在iOS上相当容易,因为您可以将文件捆绑为资源,但使用Phonegap,API只允许访问Documents目录。
如果有人能够对Phonegap捆绑的assets
的最佳做法有所了解,那就太棒了!
如果需要更多信息,请告诉我。
答案 0 :(得分:0)
文件系统插件不允许访问只读应用程序包,但这不是在浏览器中运行时获取数据的唯一方法 - XHR到文件URL(应用程序包是父的www文件夹)应该工作得很好。
也就是说,自定义插件似乎更适合这种情况。由于基本要求是自定义位置的SQLite数据库,因此您可以尝试从https://github.com/brodyspark/PhoneGap-sqlitePlugin-iOS开始并修改init / openDb代码以使用应用程序包中的文件。
另一种选择是生成所有图像文件并将其包含在应用程序包中 - 您可以获得更好的性能,因为SQLite和javascript在处理二进制数据时并不是特别擅长。
顺便提一下,如果您将文件放在文档中,首次使用下载方法可能无法通过应用商店评论。