![](/img/trans.png)
[英]How do I gracefully interrupt loading of a certain URL in Cordova's InAppBrowser and open it in the system browser?
[英]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.