17

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

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

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)
        {
        }
    }
});
4

2 に答える 2

26

あらゆる種類のダウンロードを処理するダウンロード リスナーを実装します。

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)));
    }
});
于 2013-10-02T17:08:50.490 に答える
19

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;
    }
});
于 2013-01-07T18:25:20.713 に答える