前提・実現したいこと
アプリ内部のAsset、アプリ専用のフォルダを使わずに、端末内のHtmlファイルを Webview で開きたいです。
どのような手段で開けるでしょうか..
方法と参考になる情報や、サイトを紹介してくださると助かります。
#####ファイル構成
これを開きたい: /storage/emulated/0/folder/index.html
同じフォルダにある画像: /storage/emulated/0/folder/icon.png
index.html
html
1<html> 2 <body> 3 <!-- 画像も表示したい --> 4 <img src="icon.png" /> 5 <img src="file:///storage/emulated/0/folder/icon.png" /> 6 </body> 7</html>
Webview の設定
java
1 WebView wv; 2 WebSettings wvconfig; 3 4//(省略) 5 6 wv = (WebView) findViewById(R.id.fullWebView); 7 wvconfig = wv.getSettings(); 8 9 wvconfig.setAllowFileAccess(true); 10 wvconfig.setAllowContentAccess(true); 11 wvconfig.setAllowFileAccessFromFileURLs(true); 12 wvconfig.setAllowUniversalAccessFromFileURLs(true); 13 14 wv.loadUrl("file:///storage/emulated/0/folder/index.html");
Manifest 権限
xml
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.abc.def"> 3 4 <uses-permission android:name="android.permission.INTERNET" /> 5 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 6 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 7 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> 8 9<!--省略--> 10 11</manifest>
発生している問題・エラーメッセージ
ストレージ権限を許可して、file://
を追加して読み込めるのかと思ったのですが、以下のエラーが Webview に表示されます。
text
1ウェブページへのアクセス不可 2ウェブページ(file:///storage/emulated/0/folder/index.html)は次の理由で読み込めませんでした: 3 4net::ERR_ACCESS_DENIED
該当のソースコード
java
1 wvconfig.setAllowFileAccess(true); 2 wvconfig.setAllowContentAccess(true); 3 wvconfig.setAllowFileAccessFromFileURLs(true); 4 wvconfig.setAllowUniversalAccessFromFileURLs(true); 5 6 wv.loadUrl("file:///storage/emulated/0/folder/index.html");
試したこと
マニフェストにインターネット、ストレージの権限を追記。
上の権限を付与した。
コンフィグで、 setAllowFileAccess
, setAllowContentAccess
などを true に設定した。
wv.getSettings().~~~ でも試した。
コンソールで確認したら true にすべてなっていた。
補足情報(FW/ツールのバージョンなど)
Android Studio で開発しています。
OS: Android 10 (Xperia)
エミュレータではなく 実機でテストしています。
やはり、ContentProvider
、MediaStore
あたりを参考にしたほうがいいのでしょうか。
回答1件
あなたの回答
tips
プレビュー