gpt4 book ai didi

ios - Phonegap Build inAppBrowser 事件不会在 iOS 6 和 7 中的 View 更改后触发

转载 作者:行者123 更新时间:2023-11-29 10:40:15 25 4
gpt4 key购买 nike

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

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

<gap:plugin name="org.apache.cordova.inappbrowser" />

在配置中,还有一个指向

的链接
<script src="phonegap.js"></script>

在 index.html 文件中。然后我使用

启动 inAppBroswer
window.open('myURL', '_blank', 'location=yes');

我第一次在 session 中使用它时效果很好。即使随后关闭浏览器并选择了同一 View 上的另一个链接,浏览器仍然可以工作。

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

我已通过在 loadstart 事件处理程序中放置一个警报来确认此行为,直到退出应用程序并返回它时才会触发。

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

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

谢谢

最佳答案

好像已经解决了,这篇文章看的是同一个问题(换个上下文):

https://issues.apache.org/jira/browse/CB-2102

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

https://groups.google.com/forum/#!msg/phonegap/iNl2M57xPEA/t2BW2kBXsbYJ

我通过调用以下命令让它工作:

var exec = cordova.require('cordova/exec');
exec.setJsToNativeBridgeMode(exec.jsToNativeModes.IFRAME_NAV);

在 deviceready 事件上,这现在解决了我的应用程序的问题。

希望这对遇到同样问题的人有所帮助。

关于ios - Phonegap Build inAppBrowser 事件不会在 iOS 6 和 7 中的 View 更改后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24886522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com