使用Cordova/jQuery-mobile在外部设备浏览器中打开链接

Tra*_*Guy 9 javascript jquery-mobile cordova

我的应用中有很多链接.我加入rel='external' target='_blank'了他们所有人.

在Ripple模拟器中,或在常规桌面浏览器中,这非常有用.但是在我的Android(JB 4.2.2)上,它会在同一个窗口中打开链接.点击"返回"会带我回到应用程序,但是一切都搞砸了,应用程序无法按计划运行(脚本事件没有反应),直到物理重新加载.

如何确保在设备的浏览器中打开链接?我需要使用Cordova插件吗?

(我正在使用Cordova 2.9.0,jQuery 1.10.1,jQuery Mobile 1.3.1)

Jas*_*rth 16

在过去的几个版本中,这与Cordova/PhoneGap 相形见绌,我相信因为InAppBrowser工作可能是你的解决方案.

我们在外部浏览器中启动的工作是:

window.open("http://myurl.com", '_system');
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,我们希望找到所有外部链接并在Safari/Chrome中启动它们(并在我们的Angular路由器中保留内部链接).这可能不是最优雅的解决方案,但我们现在通过捕获链接上的输入事件并接管这样的行为来做到这一点:

        $(document).on('mousedown','a', function(e) {
            e.preventDefault();
            var elem = $(this);
            var url = elem.attr('href');
            if (url.indexOf('http://') !== -1) {
                window.open(url, '_system');
            }
        });
Run Code Online (Sandbox Code Playgroud)

我希望对你有所帮助.