我正在开发Android应用,我使用Cordova and AngularJS
...
我想打开InAppBrowser
的外部链接,并允许用户从此网站内的链接下载文件...
当我点击应该打开InAppBrowser
的按钮时,它会打开网站,但当我点击此网站内的下载链接时,没有真正发生的事情......
该应用
"android.permission.WRITE_EXTERNAL_STORAGE"
许可
谢谢:)
答案 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