从昨天开始,我一直在与Cordova应用程序(iOS和Android)中的这个奇怪问题作斗争,所以我想是时候请求一点帮助了。
我在“deviceready”事件上运行以下代码:
document.addEventListener('deviceready', function() {
delete window.open;
$(document).on('mousedown','a', function(e) {
e.preventDefault();
if (this.hostname !== window.location.hostname) {
const url = $(this).attr('href');
cordova.InAppBrowser.open(url, '_system', 'location=yes');
}
});
}, false);
这适用于Android。在iOS中,它会打开系统浏览器中的链接,当我回到我的应用程序时,它也会在那里打开。
答案 0 :(得分:0)
试试这个ios和android
window.open(urlValue, "_system", "location=yes");
答案 1 :(得分:0)
刚刚找到解决方案。问题显然是使用“mousedown”事件,切换到“click”完成了这项工作。我还必须将e.preventDefault
调用移到if
块,否则内部链接将无效。
document.addEventListener('deviceready', function() {
delete window.open;
$(document).on('click','a', function(e) {
if (this.hostname !== window.location.hostname) {
e.preventDefault();
const url = $(this).attr('href');
cordova.InAppBrowser.open(url, '_system', 'location=yes');
}
});
}, false);