2015-05-22 75 views
0

我工作的Android应用程序,我使用Cordova and AngularJS ...下载文件 - 科尔多瓦

我要打开外部链接与InAppBrowser,并允许用户从这个里面的链接下载文件网站...

当我点击应该打开它的InAppBrowser打开的网站,但是当我在下载链接点击这个网站里面,没有什么发生的按钮...

的应用程序有

"android.permission.WRITE_EXTERNAL_STORAGE" 

许可

谢谢:)

+0

的InAppBrowser无法下载文件。 – Joerg

+0

所以我唯一的选择是使用设备的浏览器? – Yehuda

+0

我没有测试过ist,但是有一些插件可以在cordova中打开另一个webview。也许这是有效的。 – Joerg

回答

1

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

在你的.java文件中的onCreate

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