如何阻止webChromeClient在Android浏览器中打开文件



我正在使用WebView开发一个Android应用程序,该应用程序将本地存储的HTML5/JQuery Mobile应用程序加载到assets文件夹中。该应用程序从我拥有的域上的REST服务获取内容。内容是HTML内容和可下载文件的混合体。

我的问题在于,当用户点击按钮下载文件时,浏览器窗口启动,文件被下载,这很好。然而,我的应用程序失去了焦点,屏幕上出现了一个空白浏览器。我在谷歌上做了一些搜索,阅读了一些关于Stack Overflow的答案,并调整了我的代码以设置下载侦听器,但这仍然会加载浏览器。请告知。我的代码列在下面

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    WebView webView = (WebView)findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setAllowFileAccess(true);
    webView.setWebChromeClient(new WebChromeClient());
    webView.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);
        }
    });
    webView.loadUrl("file:///android_asset/www/index.html");
}

您是否尝试过使用Android下载管理器(请参阅http://developer.android.com/reference/android/app/DownloadManager.html)而不是启动VIEW Intent?我认为您只需要从DownloadListener中排队下载即可。

最新更新