0

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

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

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

4

1 に答える 1

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"/>
于 2016-04-26T09:07:25.227 に答える