1

我们正在使用 Phonegap 创建一个 iOS 应用程序,并且在打包一些预制资源时遇到了问题。该应用程序旨在离线使用,并涉及leaflet.js用于显示一些地图图层。

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

如果有人能对捆绑的 Phonegap 的最佳实践有所了解assets,那就太好了!

让我知道是否需要更多信息。

4

1 回答 1

0

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

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

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

顺便说一句,如果您将文件放入文档中,则首次使用时下载方法可能无法通过应用商店的审核。

于 2012-12-03T02:18:53.393 回答