2012-12-01 73 views
1

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

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

如果任何人都可以摆脱对PhoneGap的最佳实践的一些光捆绑assets这将是伟大的!

让我知道是否需要任何信息。

回答

0

文件系统插件不允许进入只读应用程序包,但不是为了在浏览器中运行时数据的唯一途径 - 一个XHR到一个文件URL(应用程序包是父的www文件夹)应该工作得很好。

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

另一种选择是生成所有的图像文件,包括那些在应用程序包 - 您会得到更好的性能,这种方式为SQLite和JavaScript的是不是在处理二进制数据特别好。

顺便说一句,在下载在第一次使用的方法很可能不会,如果你把文件中的文件通过一个应用程序商店审查。

+0

谢谢。我们尝试过XHR解决方案无济于事,并且出现了SQLite插件,但这里缺少Obj-C技巧意味着这将是最后的手段。感谢您确认我不只是错过了允许我们想要的API的一部分,现在我们可以继续前进! 有趣的应用程序商店审查拒绝 - 为什么? –

+0

默认情况下,文档中的文件会备份到iCloud--您不应该将它用于任何非用户创建的内容,并且如果丢失,可以再次下载。 –