2012-02-24 24 views
8

WebView'imde bir PDF açmak istiyorum ve bu forumdaki kodları bulup birleştirdim.PDF'yi bir WebView'de açın

Ancak Adobe Reader da dahil olmak üzere yüklü birden fazla PDF uygulamasına sahip olmamasına rağmen "PDF uygulaması bulunamadı" yı yakalar. İşte

kodu:

private class PsvWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 

      if (url.contains(".pdf")) { 
       Uri path = Uri.parse(url); 
       Intent pdfIntent = new Intent(Intent.ACTION_VIEW); 
       pdfIntent.setDataAndType(path, "application/pdf"); 
       pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

       try 
       { 
        startActivity(pdfIntent); 
       } 
       catch(ActivityNotFoundException e) 
       { 
        Toast.makeText(PsvWebViewActivity.this, "No PDF application found", Toast.LENGTH_SHORT).show(); 
       } 
       catch(Exception otherException) 
       { 
        Toast.makeText(PsvWebViewActivity.this, "Unknown error", Toast.LENGTH_SHORT).show(); 
       } 

      } 

      return true; 
     } } } 
+0

Garip bu çalışmadığını, tek cevap google kullanarak bir WebView'da göstermekten ve bu, gerçekten sevdim baktı ne zaman teslim etmek istiyordun bulmak PDF'yi görüntülemek için başka bir uygulamaya bırakın. – BigOmega

cevap

28

Sen açık pdf doğrudan android web tarayıcısında Ama android Tarayıcı gibi açabilirsiniz google Dokümanlar Görüntüleyici kullanarak edemem ......

mWebView.loadUrl("https://docs.google.com/gview?embedded=true&url="+ webUrl); 
+0

Tamam, bu çalışma, denediğim yönteme göre işe yaramazsa talihsiz, web görüntülemenin daha az net olduğunu düşünüyorum –

+0

Çalışıyor ama eğer dokümanı ** webUrl ** 'da değiştirirseniz, etkilenmesi zaman alır. google dokümanlar Eski belgeyi görüntüler. –

+5

Sadece sınırlı sayıda URL açar. Bundan sonra "Maksimum bant genişliğine ulaştınız" mesajını gösterir. Herhangi bir alternatif var mı? –

5

Biliyorum, bu soru eski.

Ama Xamarin’in Mozilla’dan pdf.js’yi kullanmasını çok seviyorum. Eski Android sürümlerinde çalışır, bunun için özel bir PDF Viewer uygulamasına ihtiyacınız yoktur ve uygulama görünümler hiyerarşinizin içinde kolayca bir PDF görüntüleyebilirsiniz. Bunun için

Git: https://mozilla.github.io/pdf.js/

Ek seçenekleri:

enter image description here

Ve aşağıdaki şekilde aramak: https://github.com/mozilla/pdf.js/wiki/Viewer-options

Sadece Varlıklar dizine pdfjs dosyaları eklemek

// Assuming you got your pdf file: 
File file = new File(Environment.getExternalStorageDirectory() + "/test.pdf"); 

webview = (WebView) findViewById(R.id.webview); 
WebSettings settings = webview.getSettings(); 
settings.setJavaScriptEnabled(true); 
settings.setAllowFileAccessFromFileURLs(true); 
settings.setAllowUniversalAccessFromFileURLs(true); 
settings.setBuiltInZoomControls(true); 
webview.setWebChromeClient(new WebChromeClient()); 
webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + file.getAbsolutePath()); 

Soğuk şey: İşlev/kontrol miktarını azaltmak istiyorsanız. Varlıklar/pdfjs/web/viewer.html dosyasına gidin ve bazı denetimleri gizli olarak işaretleyin.

E.g. Doğru araç çubuğunu beğenmezseniz:

<div id="toolbarViewerRight" style="display: none;">...</div> 
İlgili konular