Android中的WebView&直接下载支持

时间:2012-08-26 13:25:58

标签: android webview download

我遇到了很多关于WebView的未解决的问题,支持在Android中下载文件。

以下是简单MainActivity.java的代码(整个WebView):

package com.webview.downloader;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.pad.android.xappad.AdController;

public class MainActivity extends Activity {

    WebView mWeb;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        mWeb = new WebView(this);
        setContentView(mWeb);
        WebSettings settings = mWeb.getSettings();
        settings.setJavaScriptEnabled(true);

        mWeb.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
            }
        });
        mWeb.loadUrl("http://www.site-with-direct-links.somehostingsite.com");
    }
}

使用此代码,在打开URL并点击链接后,没有任何反应。

我们需要添加以下代码(恰好在mWeb.loadUrl();之后):

  mWeb.setDownloadListener(new DownloadListener() {
      public void onDownloadStart(String url, String userAgent,
              String contentDisposition, String mimetype,
              long contentLength) {
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);
      }
  });

使用此代码,现在我们可以浏览网页并下载文件,例如。点击以下内容: http://www.google.cz 后,WebView会将用户重定向到该网站,点击后: http://www.google.cz/download-file.apk ,默认浏览器或任何其他浏览器,如谷歌浏览器(选择后)将弹出一小段时间,然后下载将开始。

所以我的问题是:如何在不打开文件的情况下开始下载文件( .zip .rar .apk )任何浏览器。

当然,我已经研究过docs,也搜索了堆栈,但从来没有运气过。真实的例子会很好,我的代码听起来更好听!

0 个答案:

没有答案