带有“_system”参数的InAppBrowser.open在webview中打开链接(仅限iOS)

时间:2016-01-07 12:32:45

标签: ios cordova inappbrowser

从昨天开始,我一直在与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中,它会打开系统浏览器中的链接,当我回到我的应用程序时,它也会在那里打开。

2 个答案:

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