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 コードを変更してみてください

もう 1 つのオプションは、すべての画像ファイルを生成し、それらをアプリ バンドルに含めることです。SQLite と JavaScript はバイナリ データの処理が特に得意ではないため、その方法でパフォーマンスを向上させることができます。

ちなみに、ファイルをドキュメントに入れている場合、初回使用時にダウンロードする方法では、アプリ ストアのレビューに合格しない可能性があります。

于 2012-12-03T02:18:53.393 に答える