0

我想知道我在下使用 iframe 的网站之一WebView,一切正常,只有按钮下载WebView不起作用,当我启动应用程序时..它会打开浏览器加载,我是否错过了下面代码中的某些内容:

布局:

<WebView 
    android:id="@+id/ringtones"
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="0.55"
    android:scrollbars="none" />

活动:

mWebView = new WebView(this);

        mWebView = (WebView) findViewById(R.id.ringtones);
        mWebView.setWebChromeClient(new WebChromeClient() {
        });
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setAllowFileAccess(true);
        mWebView.getSettings().setPluginsEnabled(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.loadUrl("http://www.free-ringtones.cc/android/");

URL上面的代码工作正常,但如果在 下,我无法下载铃声文件WebView,如果在浏览器中打开,它会像往常一样工作。

我做错了什么吗?

谢谢。

4

2 回答 2

0

webview 不能直接下载文件,你需要使用类似的东西来实现它:

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

      // open in external browser (for download)
      Intent i = new Intent(Intent.ACTION_VIEW);
      i.setData(Uri.parse(url));
      startActivity(i);

      // OR you call a method to download url to file directly
    }
});
于 2013-07-10T04:23:52.190 回答
0

您可以实现一个 DownloadListener,但它会打开一个 AppChooser 来选择要下载的浏览器。我认为我们无法在应用程序内下载。

webView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            Intent appChooser = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
            startActivity(appChooser);
        }
    });
于 2019-05-15T12:09:56.457 回答