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

时间:2013-11-20 09:54:16

标签: java android html5 jquery-mobile android-webview

我正在使用WebView开发Android应用程序,该应用程序在assets文件夹中加载本地存储的HTML5 / JQuery Mobile应用程序。该应用程序从我拥有的域上的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");
}

1 个答案:

答案 0 :(得分:0)

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