gpt4 book ai didi

javascript - 如何让 Cordova navigator.notification.confirm 对话框触发 inappbrowser?

转载 作者:行者123 更新时间:2023-11-28 19:03:34 26 4
gpt4 key购买 nike

我有一个 Web 链接不能很好地与 Cordova 3.4.0 上的 inappbrowser 一起播放(它不会加载 - 它是来自网站的脚本)所以我想使用 native 移动浏览器(iOS 和 Android)来查看网站而不是 inappbrowser。这本身是没有问题的。我只是简单地将 inappbrowser 设置为 _system。

当我尝试在组合中加入一个通知对话框以警告最终用户他们将被带出应用程序并进入他们的 native 浏览器时,我的问题就出现了。为此,我正在尝试使用 Cordova navigator.notification.confirm 插件。当用户单击原始链接时,这应该显示一个带有选项按钮的对话框(在本例中为确定和取消)。然后,当按下 ok 时,对话框调用运行 inappbrowser 的函数,或者如果按下取消,对话框关闭并将用户返回到应用程序。

发生的情况是对话框显示得很好,但是,确定和取消按钮都只是关闭对话框,而不启动本应启动 native Web 浏览器的功能。这是我的 JavaScript:

<script type="text/javascript" charset="utf-8">

function payrent(){
navigator.notification.confirm(
'You are about to leave this app and open your default web browser. Continue?',
payrent1(),
'Leave App?',
['Ok','Cancel']
);
}
</script>
<script type="text/javascript" charset="utf-8">

function payrent1(buttonIndex){
if (buttonIndex==1){
window.open('https://tenants.saffronhousing.co.uk/scripts/cgiip.exe/WService=live-openaccess/ibsxmlpr.p?docid=login', '_system', 'location=no');
}
}
</script>

对发生的事情有什么想法吗?我已经调整了代码中我能想到的所有内容,我能得到的唯一其他结果是对话框短暂显示,然后 inappbrowser 无论如何都会启动,无论是否按下任何按钮!

如有任何帮助,我们将不胜感激。

最佳答案

只需从回调参数中删除括号:

function payrent() {
navigator.notification.confirm(
'You are about to leave this app and open your default web browser. Continue?',
payrent1, // <-- no brackets
'Leave App?',
['Ok','Cancel']
);
}

在括号中,函数被立即调用,其结果(undefined)作为回调传递给确认函数。
如果没有括号,您将传递函数本身。

关于javascript - 如何让 Cordova navigator.notification.confirm 对话框触发 inappbrowser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22646842/

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