【问题标题】:How can I stop webChromeClient from opening files in the Android Browser如何阻止 webChromeClient 在 Android 浏览器中打开文件
【发布时间】:2013-11-20 09:54:15
【问题描述】:

我正在使用 WebView 开发一个 Android 应用程序,该应用程序将本地存储的 HTML5/JQuery 移动应用程序加载到 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");
}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 2014-06-07
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      相关资源
      最近更新 更多