2016-10-05 9 views
0

私のアンドロイドアプリの webviewに大きなpdfファイル(900ページあり)を読み込むことができません。私はこのコードを試してみて、どれでもうまく動作します 他のpdf、しかし、大きなものを開こうとすると表示されます:いいえプレビュー 利用可能です。大きなPDFファイルを私のwebviewにロードする

 wvReport.getSettings().setJavaScriptEnabled(true); 
    wvReport.getSettings().setAllowFileAccess(true); 
    wvReport.getSettings().setAllowContentAccess(true); 

    wvReport.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      return true; 
     } 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      // TODO Auto-generated method stub 
      super.onPageFinished(view, url); 
      Toast.makeText(ReportsViewActivity.this, "Oh no! " , Toast.LENGTH_SHORT).show(); 
     } 

    }); 

    wvReport.setWebChromeClient(new WebChromeClient() { 
     @Override 
     public void onProgressChanged(WebView view, int progress) { 
      if (progress == 100) { 
       progressBar.setVisibility(View.INVISIBLE); 
       progressBar.setProgress(0); 
      } else { 
       progressBar.setVisibility(View.VISIBLE); 
       progressBar.setProgress(progress); 
      } 
     } 

     @Override 
     public void onReceivedTitle(WebView view, String title) { 

     } 
    }); 
    wvReport.loadUrl("http://docs.google.com/viewer?url="+url); 

答えて

0

あなたはしません。 Webviewsはhtmlを表示します。これがまったく動作するという事実は、hack-googleが単純なpdfsをhtmlに変換することによるものです。彼らは大きなものをサポートしているようには思えません。もしそれらがあったとしても、htmlに変換された900ページのpdfを読み込むことは、私がOOMに行かなくても読み込むことができないほど大きいと思います。適切なpdfライブラリを使用して、実際のP​​DFレンダリングビューを作成し、必要以上にpdfを一度にレンダリングしないようにします(そうしないと、とにかくOOMに行きます)。言い換えれば、最初に頼りにしてはいけないハックなソリューションに頼らないでください。

0

Googleドキュメントプレビューなどのサービスではなく、PDF.jsのような代替手段を端末でローカルで実行するようにしてください。

はあなたの資産フォルダに入れて、例えば、微調整:また

wv.loadUrl("file:///android_asset/web/viewer.html"); 

を、@のゲイブ・sechanが言及として、あなたはメモリ不足の状況に持つことができます。試してみる代わりに、AndroidPdfViewerのようなネイティブビューアがあります。

0

私はこのコードを試してみてください。

はあなた

ありがとうPDFビューア経由 Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent);

をし、それが働いているので、PDFファイルが大きすぎる場合は、ダウンロードして開かれます

関連する問題