2012-12-01 108 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--您不應該將它用於任何非用戶創建的內容,並且如果丟失,可以再次下載。 –