Cordova inappbrowser仅将网址重定向到系统浏览器Android

时间:2017-01-21 11:47:09

标签: javascript android cordova

总之,问题是:使用inappbrowser如何使用系统浏览器加载外部网址并阻止它们显示在inappbrowser中?

更多细节

我使用inappbrowser来显示客户门户网站,但是我想在系统浏览器中显示门户网站上的外部链接。

我希望能够做的是检测外部URL,在系统浏览器中打开外部链接,然后确保在按下外部链接之前,inappbrowser仍然显示相同的页面。

我正在使用loadstart事件来检测URL,然后使用window.open(url,' _system');打开系统浏览器。问题是当系统浏览器关闭时,外部页面也显示在inappbrowser中。

所以最初在加载系统浏览器后,我再次使用我想要显示的url初始化了inappbrowser。这很好,但我放松了所有会话历史记录,下次按下后退按钮时,inappbrowser关闭。

我尝试的下一件事是使用执行脚本功能:

    app.inAppBrowserRef.executeScript({
        code: "window.open('" + overrideUrl + "', '_blank');"
    }, function () {
        //alert("Redirected!");
    });

这会加载系统浏览器中的链接,并且系统浏览器关闭时显示的页面是正确的。问题是正在显示的视图没有运行我的loadstart代码,所以如果我点击相同的外部链接,它现在加载到同一视图而不是系统浏览器。此外,如果我进行一些调试,我也不会看到任何证据表明我所看到的是inappbrowser,或者它没有我的代码。我也试过执行window.location = overrideUrl,这也没有。

奇怪的是,当我使用chromecustomtab插件而不是系统浏览器打开url时,executeScript会根据需要运行。因此,这与在系统浏览器打开时运行执行脚本有关。如果设备上没有安装chrome,我需要支持系统浏览器。

这一定是一个常见的问题,所以真的希望有一个解决方案。

提前致谢!

1 个答案:

答案 0 :(得分:0)

问题是当系统浏览器打开时,inappbrowser会丢失其事件。我正在打开一个新问题,其中问题更为相关。