使用InAppBrowser - Cordova从外部网站下载文件

时间:2015-05-22 07:30:26

标签: android angularjs cordova inappbrowser

我正在开发Android应用,我使用Cordova and AngularJS ...

我想打开InAppBrowser的外部链接,并允许用户从此网站内的链接下载文件...

当我点击应该打开InAppBrowser的按钮时,它会打开网站,但当我点击此网站内的下载链接时,没有真正发生的事情......

该应用

 "android.permission.WRITE_EXTERNAL_STORAGE"

许可

谢谢:)

1 个答案:

答案 0 :(得分:3)

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

添加这两个导入import android.net.Uri; import android.webkit.DownloadListener;

不了解iOS