2013-01-07 21 views
10

Uzyskuję dostęp do strony internetowej zawierającej dokumenty .pdf. Jeśli otworzę ten dokument przez przeglądarkę internetową, rozpocznie się jego pobieranie. Jeśli otworzę go za pomocą przeglądarki internetowej, nic się nie dzieje. Jakie ustawienie należy zastosować do wyświetlenia strony internetowej, aby rozpocząć pobieranie?Pobieranie pliku PDF za pomocą przeglądarki internetowej i wyświetlenia strony internetowej

Już to mam.

wvA.setDownloadListener(new DownloadListener() 
{ 
    public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, 
        long size) 
    { 
     Intent viewIntent = new Intent(Intent.ACTION_VIEW); 
     viewIntent.setDataAndType(Uri.parse(url), mimeType); 

     try 
     { 
      startActivity(viewIntent); 
     } 
     catch (ActivityNotFoundException ex) 
     { 
     } 
    } 
}); 
+1

spojrzeć [tutaj] (http://stackoverflow.com/questions/8485416/how-to-download-a -pdf-from-an-android-webview) – silentw

+0

Dzięki za odpowiedź. gdzie powinien dodać "view.getContext(). startActivity (new Intent (Intent.ACTION_VIEW, Uri.parse (url)))" ? – user200658

+0

jaki jest twój akcent, który wyraża się nawet w języku pisanym? – njzk2

Odpowiedz

15

Powinieneś utworzyć WebViewClient i ustawić go w swojej przeglądarce internetowej. Za każdym razem, gdy klikniesz na link, zostanie wywołana metoda WebViewClienta o nazwie shouldOverrideUrlLoading. Sprawdź, czy adres URL wskazuje na plik pdf i rób to, co chcesz. Na przykład możesz wyświetlić plik pdf.

webView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading (WebView view, String url) { 
     if (url.endsWith(".pdf")) { 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      // if want to download pdf manually create AsyncTask here 
      // and download file 
      return true; 
     } 
     return false; 
    } 
}); 
+1

możesz mi pomóc Otworzyłem wiele stron HTML5 w widoku webowym pomiędzy jednym plikiem PDF strony. użyłem tego kodu, ale nie pobierze pliku PDF – PankajAndroid

15

Wdrożenie pobierania słuchacza do obsługi wszelkiego rodzaju POBIERZ

webView.loadUrl(uriPath); 

webView.setDownloadListener(new DownloadListener() { 
    @Override 
    public void onDownloadStart(String url, String userAgent, 
      String contentDisposition, String mimetype, 
      long contentLength) { 

     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
    } 
}); 
+0

kiedy to setDownloadListener będzie nazywane @Mobistry Czy istnieje inny sposób pobrania pliku pdf, [Pytanie] (http://stackoverflow.com/questions/30301170/how-to-hide-browser-when-it-is-about-to-be-being-shown-by-mom-android) – Prabs

+0

Ten kod pobiera plik, ale otwiera przeglądarkę i wraca do aplikacji. Zatrzymaj to zachowanie. Co zrobić, jeśli nie chcę wyświetlać tego okna przeglądarki? – Prabs

+0

To jest świetna odpowiedź. To proste - w ten sposób możesz pozwolić przeglądarce na pobieranie. Ale jeśli chcesz to zrobić w widoku internetowym, możesz również - masz przekazany adres URL. – dorsz

Powiązane problemy