【问题标题】:Webview to display pdf file in offline modeWebview 在离线模式下显示 pdf 文件
【发布时间】:2016-04-26 08:55:20
【问题描述】:

使用 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 并在离线模式下显示它。有人对此有任何想法吗?

【问题讨论】:

    标签: android android-webview android-pdf-api


    【解决方案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"/>
    

    【讨论】:

    • 仍然无法正常工作。它显示“找不到 URL 单击刷新以重新加载页面。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    相关资源
    最近更新 更多