2016-04-26 17 views
0

webviewを使用すると、オンラインで次のコードが正常に実行され、PDFファイルが表示されます。その後、私はオフラインに行くと、キャッシュされたPDFファイルは表示されません。オフラインモードでPDFファイルを表示するWebview

mWebview.getSettings().setJavaScriptEnabled(true); 
String pdfStr="https://www.sample.structure.first.pdf"; 
mWebview.loadUrl("https://docs.google.com/gview?embedded=true&url=" + pdfStr); 

しかし、私はpdfをキャッシュし、オフラインモードでも表示する必要があります。誰もがこれについて考えている?

答えて

1

あなたは、次を使用してWebビューのキャッシュに作業を保存することができます

WebView webView = new WebView(context); 
webView.getSettings().setAppCacheMaxSize(10 * 1024 * 1024); 
webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath()); 
webView.getSettings().setAllowFileAccess(true); 
webView.getSettings().setAppCacheEnabled(true); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 

if (!isNetworkAvailable()) { 
    webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
} 

webView.loadUrl("your_url"); 

ネットワークが利用可能であるかどうかを確認するために、このメソッドを追加します。

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 

はマニフェストでこれらの権限を追加します。

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
+0

まだ動作していません。 「URLを見つけることができませんでした」をクリックすると、ページをリロードするために最新表示をクリックします。 – krish

+0

他のURLを試してみましたか? – Pinks

+0

ええ、同じ結果 - 動作しません – krish