在iOS 6&;中更改视图后,不会触发Phonegap Build inAppBrowser事件;7.

在iOS 6&;中更改视图后,不会触发Phonegap Build inAppBrowser事件;7.,ios,cordova,inappbrowser,Ios,Cordova,Inappbrowser,我正在使用PhoneGap版本3.3.0构建一个跨平台应用程序。该应用程序是一个新闻应用程序,因此需要在加载不同视图时更新DOM。每次发生这种情况时,旧页面都会被删除并替换为新的视图呈现。该应用程序围绕backbone.js构建,使用jQuery和Twig呈现视图 我正在使用inAppBrowser处理指向外部站点的链接,并已使用以下工具成功设置这些链接: <gap:plugin name="org.apache.cordova.inappbrowser" /> 这在我第一次在会话

我正在使用PhoneGap版本3.3.0构建一个跨平台应用程序。该应用程序是一个新闻应用程序,因此需要在加载不同视图时更新DOM。每次发生这种情况时,旧页面都会被删除并替换为新的视图呈现。该应用程序围绕backbone.js构建,使用jQuery和Twig呈现视图

我正在使用inAppBrowser处理指向外部站点的链接,并已使用以下工具成功设置这些链接:

<gap:plugin name="org.apache.cordova.inappbrowser" />
这在我第一次在会话中使用时效果很好。即使随后关闭浏览器并选择了同一视图上的另一个链接,浏览器仍能工作

但是,在iOS 6+中,如果该视图随后被另一个视图替换,则新视图中的链接不会触发。连接到链接的onclick事件肯定正在触发(我可以通过使用警报来判断),但是inAppBroswer没有打开。但是,如果我退出应用程序,然后返回应用程序,则inAppBroswer已打开。这就好像失去了对应用程序的关注会触发排队事件一样

我通过在loadstart事件处理程序中放置警报来确认此行为,在退出应用程序并返回应用程序之前不会触发此警报

我曾尝试在inAppBrowser中保留对实例的持久引用,并在实例关闭后销毁它。在创建inAppBroswer实例后,我还尝试调用
.show()
方法,但这一切似乎都没有任何区别

这是其他人遇到的问题吗?我找不到关于这个具体问题的其他问题。这似乎只发生在iOS 6和iOS 7中,而不是在Android中


感谢似乎已经解决了这个问题,本文将在不同的背景下探讨相同的问题:

由此产生的一个解决方案是使用iframe桥接模式。说明如下:

我通过打电话给以下人员使其工作:

var exec = cordova.require('cordova/exec');
exec.setJsToNativeBridgeMode(exec.jsToNativeModes.IFRAME_NAV);
在DeviceRady事件上,这现在解决了我的应用程序的问题

希望这能帮助有同样问题的人

window.open('myURL', '_blank', 'location=yes');
var exec = cordova.require('cordova/exec');
exec.setJsToNativeBridgeMode(exec.jsToNativeModes.IFRAME_NAV);