繁体   English   中英

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

[英]Cordova inappbrowser redirect url to system browser Android only

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

更多详情

我正在使用内置浏览器来显示客户门户网站,但是该门户上有外部链接要显示在系统浏览器中。

我要执行的操作是检测外部URL,在系统浏览器中打开外部链接,然后确保在按下外部链接之前,inappbrowser仍显示相同的页面。

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

因此,最初在加载系统浏览器后,我用我想显示的URL再次初始化了内置浏览器。 很好,但是我松开了所有会话历史记录,下次按下后退按钮时,关闭浏览器。

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

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

这会将链接加载到系统浏览器中,并且关闭系统浏览器时显示的页面正确。 问题在于所显示的视图未运行我的loadstart代码,因此,如果单击相同的外部链接,它现在将加载在同一视图中,而不是系统浏览器中。 另外,如果我进行了一些调试,则看不到任何证据表明我在查看器中显示内容,或者它没有我的代码。 我也尝试执行window.location = overrideUrl,这也不起作用。

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

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

提前致谢!

问题是当系统浏览器打开不正确的浏览器时会松开其事件。我正在打开一个新问题,该问题更相关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM