2017-02-28 6 views
0

こんにちは私はhtml5を表示するためにコンパイル 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'を使用しています。私のターゲットファイルは私の電話ストレージパスに保存されています "file: ///storage/sdcard0/DcLms/Conjunction/index.html "を参照してください。私はいつものアンドロイドWebViewを使って作業していますが、問題はありません。しかし、上記のライブラリを使ってみると、Webページには利用できない問題があります。電話ストレージからhtmlをロードするAdvancedWebView

String targetPath = "file:///storage/sdcard0/DcLms/Conjunction/index.html"; 
AdvancedWebView webView = (AdvancedWebView) findViewById(R.id.webView); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.setWebChromeClient(new WebChromeClient()); 
webView.getSettings().setDomStorageEnabled(true); 
webView.setWebViewClient(new HelloWebViewClient()); 
webView.loadUrl(targetPath); 

WebView basicView = (WebView) findViewById(R.id.basicView); 
webView.setWebViewClient(new HelloWebViewClient()); 

basicView.getSettings().setJavaScriptEnabled(true); 
basicView.setWebChromeClient(new WebChromeClient()); 
basicView.getSettings().setDomStorageEnabled(true); 
basicView.loadUrl(targetPath); 
basicView.setWebViewClient(new HelloWebViewClient()); 
+0

お返事ありがとうございます。しかし、私は1つの疑いがあります。最初の3つのパラメータを持つloadData()は、私たちのurl、残りの2つ(String mimeType、String encoding)どうすれば設定できますか? – user3068659

+0

loadData()が動作しません – user3068659

答えて

0

最初にすべてAdvancedWebViewは、インスタンス化時にすべての設定を自動的に構成します。ソースhereを見てください。

そして問題は、デフォルトAdvancedWebView dissallowアクセスによってfile://方式で使用していることである:ちょうどAdvancedWebView

... 
    final WebSettings webSettings = getSettings(); 
    webSettings.setAllowFileAccess(false); 
    setAllowAccessFromFileUrls(webSettings, false); 
    webSettings.setBuiltInZoomControls(false); 
    ... 

だからAdvancedWebViewの作成後に次の行を追加する必要があります。

AdvancedWebView webView = (AdvancedWebView) findViewById(R.id.webView); 
webView.getSettings().setAllowFileAccess(true); 
if (Build.VERSION.SDK_INT >= 16) { 
    webView.getSettings().setAllowFileAccessFromFileURLs(true); 
    webView.getSettings().setAllowUniversalAccessFromFileURLs(true); 
} 

NOTEをサブクラス化WebViewなので、違いはありません - 唯一の違いは、あなたはいくつかのイベントを処理します。

関連する問題