gpt4 book ai didi

ios - Cordova InAppBrowser 事件监听器未显示 alert() - 与 Cordova window.alert Hook 冲突

转载 作者:行者123 更新时间:2023-11-29 12:08:54 28 4
gpt4 key购买 nike

使用 Cordova CLI 版本 5.4.1,平台是iOS,在 iOS 模拟器上运行

来 self 应用的 onDeviceReady处理程序,我正在调用一个函数来设置一个 Hook ,以便使用 native 对话框显示警报,如下所示:

overrideBrowserAlert: function() {
if (navigator.notification) { // Override default HTML alert with native dialog
window.alert = function (message) {
navigator.notification.alert(
message, // message
null, // callback
"MyAppTitle", // title
'OK' // buttonName
);
};
}
},

大多数alert调用有效,但以下无效。

在某个阶段我打开一个 InAppBrowser window 。单击“完成”按钮后,它会成功关闭。我已经为事件注册了一个事件监听器 exit它做了两件事:

  1. alert("InAppBrowser window closed");
  2. Make an AJAX call, get some HTML from a remote server and show it in a <div> element

问题在这里:AJAX 调用成功,但是 alert不显示。这意味着 exit事件成功触发,alert 有问题只打电话。

问题是这样解决的:猜测可能是范围或事件处理冲突,我注释掉了 window.alert 的代码。钩子(Hook)(即上面的 overrideBrowserAlert 调用),果然,InAppBrowser 中的警报 exit事件处理程序有效。

我的问题是:有谁知道如何解决这个冲突,以便 InAppBrowser 中的警报 exit事件处理程序工作并且 window.alert钩子(Hook)也启用了?

谢谢!

最佳答案

这是 cordova-plugin-inappbrowser 上的一个错误

我已经填写了一个问题 https://issues.apache.org/jira/browse/CB-10855

您可以通过将关闭方法更改为

来修复它
- (void)close
{
[CDVUserAgentUtil releaseLock:&_userAgentLockToken];
self.currentURL = nil;

__weak CDVInAppBrowserViewController* weakSelf = self;

// Run later to avoid the "took a long time" log message.
dispatch_async(dispatch_get_main_queue(), ^{
if ([weakSelf respondsToSelector:@selector(presentingViewController)]) {
[[weakSelf presentingViewController] dismissViewControllerAnimated:YES completion:^{
if ((weakSelf.navigationDelegate != nil) && [weakSelf.navigationDelegate respondsToSelector:@selector(browserExit)]) {
[weakSelf.navigationDelegate browserExit];
}
}];
} else {
[[weakSelf parentViewController] dismissViewControllerAnimated:YES completion:nil];
}
});
}

关于ios - Cordova InAppBrowser 事件监听器未显示 alert() - 与 Cordova window.alert Hook 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34125156/

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