2017-01-31 14 views
0

私は最初にwebviewを使用して、クラスノート(HTMLで作成)をオンラインで表示しています。 キャッシングは非常に簡単でした。 ここにコードがあります。オンラインPDFはオフラインで閲覧できます(キャッシング)

webView = (WebView)findViewById(R.id.webView); 
    if (webView != null) { 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB 
     webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getAbsolutePath()); 
     webView.getSettings().setAllowFileAccess(true); 
     webView.getSettings().setAppCacheEnabled(true); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // load online by default 
    } 

    webView.setWebViewClient(new WebViewClient(){ 
     @Override 
     public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { 
      super.onReceivedError(view, request, error); 
      Toast.makeText(NoteViewActivity.this, error.toString(), Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      findViewById(R.id.loadingPanel).setVisibility(View.GONE); //Make progress disappear 
     } 
    }); 

    if (!isNetworkAvailable()) { // loading offline 
     webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
    } 
    webView.loadUrl(getIntent().getStringExtra("NOTE_LINK")); 

だからあなたの好きなHTTPクライアントAPIを使用して、PDFを自分でダウンロードpdfView.fromUri(uri)

答えて

1

を使用してGitHubの

com.github.barteksc.pdfviewer.PDFView 

からPDFViewerでこれと同じことを行う方法があります。その後、fromUri()ではなくfromFile()を使用してください。

+0

しかし、私はユーザーがpdfファイルにアクセスできるようにしたくありません。私はちょうどそれらがアプリ内でそれを見ることができるようにします – dbkonXepts

+1

@dbkonXepts:自分自身をPDFを[内部ストレージ]にダウンロードしてください(https://commonsware.com/blog/2014/04/07/storage-situation-internal- storage.html)を使用して、お気に入りのHTTPクライアントAPIを使用します。次に、fromUri()ではなくfromFile()を使用します。 – CommonsWare

+0

ありがとう、情報は非常に便利でした。 @CommonsWare – dbkonXepts

関連する問題