我目前正在使用 jQuery Mobile 和 PhoneGap 2.0.0 开发移动应用程序。该应用程序是一个具有不同 div 元素的 html 文件,代表应用程序的屏幕,并且使用原生容器使用 javascript 代码显示屏幕。
对于几个操作,我一直在使用本机警报和确认功能与用户进行交互。例如:
function customBeforeMenuItemClick(screen, menuItem) {
if (screen === "APPROVALQUEUE" && menuItem === "Close") {
return (confirm('Do you want to close without submitting changes?'));
}
}
在这里,该函数从确认弹出窗口中获取返回并在另一个函数(我无法控制)中使用它来处理关闭或关闭应用程序的操作。
现在我需要修改弹出窗口的标题并考虑使用Phonegap 函数navigator.notification.alert 并确认。但是,这些函数是异步的,脚本会继续执行。
我尝试使用回调方法返回正确的布尔值,但使用确认弹出窗口的函数已经完成执行
function onConfirmClose(button){
return (button == 1);
}
function toClose(){
navigator.notification.confirm("Close?", onConfirmClose,
'Do you want to close', 'yes,no');
}
function customBeforeMenuItemClick(screen, menuItem) {
if (screen === "Start" && menuItem === "Cancel") {
toClose();
}
else {return true;}
}
在此示例代码中,在 toClose() 函数完成后关闭应用程序时,弹出窗口会短暂闪烁然后消失。
我尝试使用回调函数来设置一个全局变量,该变量将用于返回弹出窗口的结果,但它不起作用。
有没有办法获得 navigation.notification.confirm 的结果?