在inAppBrowser中启用下载 - Phonegap / Cordova

时间:2014-08-13 04:58:56

标签: android ios cordova webview inappbrowser

我正在使用cordova 3.5-0.26& inAppBrowser 0.5.0

现在我在inAppBrowser中加载一个外部页面。有一个下载按钮。当我按下下载它没有做任何事情。我在inAppBrowser中下载了一些东西。就像在科尔多瓦看来一样。

然后我尝试使用以下代码(适用于Android)激活下载管理器

appView.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);
                    }
                });

这对inAppBrowser也不起作用。

1)如何在inAppBrowser中启用下载? 2)有没有办法用默认下载管理器来捕获下载? 3)如果可能请提及ios和android的解决方案。如果不是android现在会做。请帮忙......

1 个答案:

答案 0 :(得分:0)

InAppBrowser不允许下载。您需要修改插件才能下载。

对于android,在platforms\android\src\org\apache\cordova\inappbrowser

方法名称private void navigate(String url) {

包括

this.inAppWebView.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));
                      cordova.getActivity().startActivity(i);
                    }
                });

在此行之前this.inAppWebView.requestFocus();

方法public void run() {

中的相同代码

此段之后

if (clearAllCache) {
                CookieManager.getInstance().removeAllCookie();
            } else if (clearSessionCache) {
                CookieManager.getInstance().removeSessionCookie();
            }

            inAppWebView.loadUrl(url);

在onCreate

中的.java文件中
appView.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);
                    }
                });

不了解iOS