我如何使用DownloadListener?

问题描述 投票:5回答:1

我正在创建一个应用程序,允许大学生从应用程序而不是浏览器下载他们的学习材料。主页有很多主题名称。每个主题名称都会导致新的网页。所以,我使用过WebViewClient。但是,在最后一页,当我点击* .ppt或* .pdf文件时,它会打开垃圾。

我希望在应用程序中下载这些文件。

我如何实现DownloadListener

package jiit.app;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class sm extends Activity
{  
    WebView browser;

    protected void onCreate(Bundle anyvar) 
    {
        super.onCreate(anyvar);
        setContentView(R.layout.sm);
        browser=(WebView)findViewById(R.id.webkit);
        WebSettings webSettings = browser.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(true);
        browser.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE);
        browser.setWebViewClient(new WebViewClient());
        {
            browser.loadUrl("http://www.sm.ividhya.com/j128/");
        }  
    }
}
android webviewclient webclient-download
1个回答
7
投票

试试这个DownloadListener的例子:

public class webActivity  extends Activity {

 WebView webView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.webView=(WebView) this.findViewById(R.id.webview);
        this.webView.getSettings().setSupportZoom(false);
        this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        this.webView.loadUrl("http://www.sm.ividhya.com/j128/");
        this.webView.setWebViewClient(new WebViewClientDemo());
        webView.setDownloadListener(new DownloadListener() {
            public void onDownloadStart(String url, String userAgent,
                            String contentDisposition, String mimetype,
                            long contentLength) {

                                          Uri uri = Uri.parse(url);
           Intent intent = new Intent(Intent.ACTION_VIEW,uri);
                    startActivity(intent);
            }
    });

    }
  private class WebViewClientDemo extends WebViewClient {
    @Override

    public boolean shouldOverrideUrlLoading(WebView view, String url) {
     view.loadUrl(url);
      return true;
     }
© www.soinside.com 2019 - 2024. All rights reserved.