>我正在加载一个我无法控制的外部website
,下载buttons
或打算在其他地方打开的链接,例如.ics或.pdf文件没有任何效果或操作,例如使用默认application
在app
本身上打开它。 这是代码
onDeviceReady: function() {
var openWindow = function() {
var ref = cordova.InAppBrowser.open('https://www.example.com', '_blank', 'location=yes,zoom=no,toolbar=no,enableViewportScale=yes');
ref.addEventListener('exit', function(event) { navigator.app.exitApp()
navigator.notification.activityStart("", "loading");
});
var loadStop = function(event) {
navigator.notification.activityStop();
ref.removeEventListener('loadstop', loadStop);
};
ref.addEventListener('loadstop', loadStop);
};
我不知何故找到了一种方法在 android 上解决这个问题,在插件 inappbrowser.java 中,路径如下:\platforms\android\app\src\main\java\org\apache\cordova\inappbrowser
在此方法上,我添加了更多参数来获取.pdf和.ics文件
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
if (url.endsWith(".pdf")){
try{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
intent.setPackage("com.android.chrome");
cordova.getActivity().startActivity(intent);
return true;
}catch(android.content.ActivityNotFoundException e){
LOG.e(LOG_TAG, "Error with " + url + ": " + e.toString());
}
} else if (url.contains("/icsdownload/")){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
cordova.getActivity().startActivity(intent);
}
}
我还指定了使用哪个特定包打开。 我可以邀请iOS方面的帮助