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