WebViewにロードしたいローカルhtmlページと、それが指している他のいくつかのリソース(cssファイルとJavaScriptライブラリ)があります。どうすればこれを達成できますか?
おそらく最良の方法ではありませんが、まだ実験中です。
WebViewにロードしたいローカルhtmlページと、それが指している他のいくつかのリソース(cssファイルとJavaScriptライブラリ)があります。どうすればこれを達成できますか?
おそらく最良の方法ではありませんが、まだ実験中です。
回答:
最も簡単な方法は、おそらくあなたのウェブリソースをassetsフォルダーに入れて、それを呼び出すことでしょう:
webView.loadUrl("file:///android_asset/filename.html");
JavaとWebview間の完全な通信については、こちらをご覧ください
更新:アセットフォルダーは通常、次のフォルダーです。<project>/src/main/assets
これは、<app>.iml
ファイルのアセットフォルダー構成設定で次の
ように変更できます。
<option name=”ASSETS_FOLDER_RELATIVE_PATH” value=”/src/main/assets” />
Android Studioでアセットフォルダーを配置する場所を
参照してください。
AndroidManifest.xml
それを反映するように更新しない場合など、他のアセットまたは予期されるファイルが欠落している場合も同様です。(個人的には、URL /ファイルパスを文字列リソースに入れ、そこからアクセスすることをお勧めします。パスはプログラムの他のすべての文字列データと一緒になりますが、アセット/の問題に直接関連しているわけではありませんリソースの依存関係。)
おそらくこのサンプルが役立つでしょう:
WebView lWebView = (WebView)findViewById(R.id.webView);
File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
lWebView.loadUrl("file:///" + lFile.getAbsolutePath());
この場合、を使用するWebView#loadDataWithBaseUrl()
方がWebView#loadUrl()
!
webView.loadDataWithBaseURL(url,
data,
"text/html",
"utf-8",
null);
url:url / pathすべてのJavaScriptファイルとhtmlリンクがその起源を持つディレクトリを指す文字列。nullの場合、about:blankです。data:たとえば、BufferedReaderで読み取られたhmtlファイルを含む文字列