该应用程序有一个删除dblog的按钮。当用户点击按钮时,我要求确认,然后继续删除。
我正在使用navigator.notification.confirm来询问用户
这是我的代码 -
function deleteLog()
{
navigator.notification.confirm(
"Are you sure you want delete?",
function(buttonIndex){
if(buttonIndex==1)
{
console.log("User has cancelled");
return;
}
},
"Confirmation",
"Cancel, Delete");
console.log("User has confirmed Delete");
}
但是,即使在用户点击“取消”或“删除”之前,我也会收到“用户已确认”消息。我尝试在上面添加一个else语句,但仍然没有运气。
可能出现什么问题?
编辑: 更多信息 -
我喜欢的顺序是单线程===按删除 - >要求确认 - >用户按下删除 - >删除dbLog。
发生了什么事情按删除 - >线程一= =要求确认 线程二(按删除后) - >删除DB日志
答案 0 :(得分:2)
通过放置console.log(“用户已确认删除”),在回调之外,您基本上是在告诉程序运行console.log而无论用户按下什么。
我会把确认功能拿出去以获得更好的可用性,并按照以下方式编写:
function deleteLog() {
navigator.notification.confirm(
'Are you sure you want delete?', // message
onConfirm, // callback to invoke with index of button
'Confirmation', // title
'Cancel,Delete' // buttonLabels
);
}
//on button press, the onConfirm function is called
function onConfirm(button) {
//console.log('You selected button ' + button);
if(button == 1){
//pressed "cancel"
console.log("User has cancelled");
}
else if(button == 2){
//pressed "delete"
console.log("User has confirmed Delete");
}
}
这很有效。