2013-01-07 141 views
10

私は、.pdfドキュメントを持つウェブサイトにアクセスしています。 Webブラウザからその文書を開くと、その文書がダウンロードされます。私がwebviewを通してそれを開くと、何も起こりません。ダウンロードを開始するためにwebviewにどのような設定を適用する必要がありますか?ウェブブラウザとwebviewでpdfをダウンロードする

私はすでにこれを持っています。

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

は(http://stackoverflow.com/questions/8485416/how-to-download-a [ここ]を見てみましょう-pdf-from-an-android-webview) – silentw

+0

返信ありがとうございます。どこに "view.getContext()。startActivity(新しいインテント(Intent.ACTION_VIEW、Uri.parse(url)));" ? – user200658

+0

書いた言語でさえ自分自身を表現するあなたのアクセントは何ですか? – njzk2

答えて

15

WebViewClientを作成してWebViewに設定する必要があります。リンクをクリックするたびにWebViewClientのshouldOverrideUrlLoadingメソッドが呼び出されます。 urlがpdfファイルを指していることを確認し、必要な操作を行います。たとえば、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

あなたは、私は1ページ下のPDFファイルの間にwebviewで多くのhtml5ページを開いていました。私はこのコードを使用していましたが、pdfファイルをダウンロードしません – PankajAndroid

15

ダウンロードのいずれかの種類を処理するために、ダウンロードリスナーを実装します。

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

このsetDownloadListenerはいつ@Mobistryと呼ばれますか?PDFファイルをダウンロードする他の方法はありますか?[質問](http://stackoverflow.com/questions/30301170)/how-to-hide-browser-when-about-to-be-shown-momentarily-android) – Prabs

+0

このコードはファイルをダウンロードしていますが、Webブラウザを開いてアプリに戻ります。この行動を止めてください。私はそのブラウザのポップアップを取得したくない場合はどうすればいいですか? – Prabs

+0

これは素晴らしい答えです。それは簡単です - この方法で、ブラウザがダウンロードを処理できるようにします。しかし、あなたがwebviewの中でそれをやりたいのであれば、URLを渡してもかまいません。 – dorsz

関連する問題