2012-04-12 53 views
1

我试图关闭我的PhoneGap Android应用程序与下面的代码:关闭Android应用Jquery的 - PhoneGap的

document.addEventListener("backbutton", function() { 
    if ($('.screenshot').is(":visible")) { 
     if (confirm('Afsluiten?')){ 
      setTimeout(function() { navigator.app.exitApp(); }); 
     } 
     else { 
      ''; 
     } 
    } 
    else { 
     $(".items , .screenshot").show(); 
     $(".content , .openbrowser , .html5vid , .introtekst_gal").hide(); 
     $(".terug").hide(); 
    } 
}, true); 

它的工作原理,一旦:按后退按钮,然后“确定”关闭应用程序,如预期。

但是,当我不喜欢这样,应用程序没有关闭了:

  • 按后退按钮(弹出所示)
  • 按“取消”(弹出消失)
  • 按后退按钮(弹出所示)
  • 按“OK”(弹出消失和应用程序应该关闭,但是并不)

我在做什么错?

回答

8

你可以试试这个代码:

 document.addEventListener("backbutton", function() { 
     navigator.notification.confirm(
      'Do you want to quit', 
      onConfirmQuit, 
      'QUIT TITLE', 
      'OK,Cancel' 
     ); 
    }, true); 


    function onConfirmQuit(button){ 
     if(button == "1"){ 
      navigator.app.exitApp(); 
     } 
    } 
+0

这个工作!以某种奇怪的方式,我的代码和Simon的代码只能工作一次。尽管最终它发生的是同样的事情,但它仍然可以多次工作。 我可以调整文本框的部分额外的荣誉:D – Rvervuurt 2012-04-13 21:11:12

0

我不得不剥离下来一些代码来测试,所以我最终使用:

 document.addEventListener("backbutton", function() { 
      if (confirm('Afsluiten?')){ 
       setTimeout(function() { navigator.app.exitApp(); }); 
      } 
      else { 
       ''; 
      } 
     }, true); 

这似乎工作得很好。你应该做一些console.logs来查看确认对话是否将你返回到正确的位置。另外,当您运行应用程序时,您在“adb logcat”中看到了什么?