私のAndroidアプリでは、htmlファイルをwebviewにロードしたいのですが、このhtmlファイルは「data/data/com.myapp/files/index.html」に保存されます。関連する JavaScript ファイルを使用して読み込むことはできますが、「data/data/com.myapp/files/img/image.png」から画像を読み込もうとすると機能しません。これは私がそれをやろうとしている方法です:
webView.loadDataWithBaseURL(getFilesDir()+"/img/", html, "text/html","utf-8", ""); //html is my html string I get from index.html
私も試しました:
webView.loadUrl(getFilesDir()+"/img/"+index.html");
私のhtmlファイルには
<img id="image" src="/img/image.png"/>
ファイルがディスクに読み込まれていることを確認しましたが、webview に表示できず、画像の表示が空白のままです。私はそれを機能させることができません。だから私の質問は:それは可能ですか?はいの場合、誰かが方法を教えてもらえますか?
検索したところ、他の人にも同様の問題があることがわかりましたが、解決策はどれも機能していません。
編集:ファイルをアセットディレクトリに置くことは、私にとってはオプションではありません。これは既にテスト済みであり、機能します。
ここで見つけた次のコードを試してみました: webview で sdcard に保存された画像を読み込む
String base = getFilesDir();
String imagePath = base + "/test.jpg";
String html = ("<html>
<head>
</head>
<body>
<img src=\""+ imagePath + "\">
</body>
</html>
");
mWebView.loadData(html, "text/html","utf-8");
しかし、まだ成功していません。どうやら、質問をした人にとってはうまくいったようです。外部ストレージでもテストしましたが、結果は同じです。すべての権限は manifest.xml にあります。だから私は本当に問題が何であるか分かりません。提案やアドバイスをいただければ幸いです。