Cordova/iOS:如何关闭使用 InAppBrowser 打开的本机浏览器窗口?

Posted

技术标签:

【中文标题】Cordova/iOS:如何关闭使用 InAppBrowser 打开的本机浏览器窗口?【英文标题】:Cordova/iOS: How to close native browser window opened with InAppBrowser? 【发布时间】:2014-07-17 18:20:38 【问题描述】:

我在 _system 浏览器中打开一个 URL,它会重定向回应用程序(使用自定义 URL 方案)。回到应用程序后,我想关闭外部浏览器窗口,但它不起作用。

var iab = window.open(url, '_system', 'location=no');
...
iab.close(); // log: "IAB.close() called but it was already closed."

它会关闭应用内浏览器窗口,但不会关闭 _system 窗口。有没有办法做到这一点?

【问题讨论】:

2019 年仍然存在同样的问题 :( 有什么想法吗? 不,似乎不允许应用程序关闭系统浏览器窗口。这是有道理的...window.open 并没有真正在您的应用程序中打开另一个 Web 视图 - 它要求系统启动另一个应用程序。我们不能乱用其他应用程序的窗口。 【参考方案1】:

在目标页面上使用 iframe。

var iab = window.open(url, '_system', 'location=no');

Url 重定向到具有 iframe 并在超时前关闭的页面。

<iframe src="myurl://..."></iframe>

setTimeout(function()

    window.close();
,1000);

【讨论】:

以上是关于Cordova/iOS:如何关闭使用 InAppBrowser 打开的本机浏览器窗口?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch Cordova iOS 应用程序加载和关闭时间超过 20 秒

如何仅使用 iOS 源代码更新 Cordova iOS 平台项目

打开和关闭inappbrowser 在ios 7 底部phonegap+sencha 带来白条

cordova ios 位置定位 通知 怎么去掉

Cordova iOS - 如何更改最低部署版本?

将remotebuild与cordova ios一起使用时如何修复丢失的写访问错误?