私は、zipファイルをダウンロードして解凍し、プラットフォームの特定のドキュメントディレクトリにファイルを保存するWorklightプロジェクトに取り組んでいます(iOSNSDocumentDirectory
では、Androidでは使用していgetFilesDir()
ます)。このファイルは、サブディレクトリ(メディア)にある1つのHTMLファイルと複数の画像で構成されています。ダウンロードと解凍は、両方のプラットフォームで正常に機能します。解凍プロセスの後、HTMLファイルのコンテンツを既存のdivにロードしています(これはWorklightアプリであるため、すべてが1つのHTMLファイルに含まれています)。
ここで事態は複雑になります。ダウンロードしたHTMLファイルの画像タグソースは、HTMLファイル(例:'media / myimage.jpg')に関連しています。HTMLファイルをWorklightHTMLファイル(Appバンドル/パッケージにあります)に挿入すると、ベースURLが変更され、画像がどこにも見つかりません。ダウンロードしたHTMLファイル内のすべての画像タグを絶対URLを指すように書き換えるネイティブ関数を作成することでこれを修正しました(iOS:/var/mobile/Applications/<identifier>/Documents/
、Android:)/data/data/<id>/files/
。これはiOSでは正常に機能しますが、AndroidではHTMLが部分的にしか読み込まれません。次に、LogCatは次のように表示します。
Unknown chromium error: -6
ファイルをそのままにしておくと、HTMLは正しく読み込まれますが、画像が壊れていることは明らかです。また、URLをに変更しようとしましたfile:///data/data/<id>/files/ [...]
。これにより、HTMLが完全に読み込まれなくなります。何がこの問題を引き起こしているのか、私には本当にわかりません。アプリにはすでにWRITE_EXTERNAL_STORAGE
権限があります。
誰かがこれを修正する方法を知っていますか?ありがとうございました!