バックストーリー(または私がやろうとしていること)
私のアプリには、アセットフォルダーから html ファイルをロードする webview があります。ファイルには 2 つの iframe があります。
次に、ユーザーはアプリにいくつかの zip ファイルをインポートします。これには、これらの iframe に読み込まれる追加のファイルが含まれています。これらのファイルをロードするには、file:// URL をメイン ページ (2 つの iframe を含むページ) の JavaScript 関数に渡します。残りは JavaScript です。次に、メイン ページは、ユーザー ファイルが iframe に読み込まれた後に、いくつかの追加の js と JavaScript を挿入します。すべてが正常に機能しています。
問題
大丈夫だ。ファイルが xhtml ファイルの場合を除きます。挿入された JavaScript には、ファイルが text/xhtml としてロードされたときに機能しない dom 操作関数がいくつかあります。クロム組み込みフレームワークを使用する同じアプリの PC バージョンがあります。text/html MIME タイプですべての xhtml ファイルをロードするカスタム リソース ローダーを作成することで、その問題を解決しました。
これまでに試したこと
私はアンドロイド版で同じことをしようとしました。ただし、Java側のwebview内のiframeをターゲットにする必要はありません。
shouldOverrideUrlLoading(WebView view, String url)
.xhtml url の場合は trueを使用して返します。私は(CEFの関数の対応物のため)その関数の最初の引数は iframe であり、使用されると思いましたloadDataWithBaseUrl
。iframe ではなく、メインの webview 自体であることが判明しました。
質問
同様の機能を使用して、Javaからiframeにデータをロードする方法はありますか? そうでない場合は、そのようなファイルを text/xhtml の代わりに text/html として転送することについて何か提案はありませんか。
または、JavaScript側でできることはありますか?