【问题标题】:Which event to catch for application shut down?应用程序关闭要捕获哪个事件?
【发布时间】:2011-01-13 06:46:36
【问题描述】:

我将 jQueryMobile 和 phoneGap 用于跨设备移动应用程序。我使用 html 5 本地存储来保存用户处理的记录。

我不知道在应用程序关闭之前要捕获哪个 phoneGap 事件,因此我可以确保在关闭完成之前保存数据。

根据 naughtur 的建议,我尝试了 unload 和 beforeunload 事件,它们都没有在应用程序关闭期间被触发。以下是我的代码片段:

function persistTasks(){
    alert ("is unloading the app");
    offlineTasklist.set("tasks", tasklist); 
}

function init() {
    document.addEventListener("unload", persistTasks, false);
    login();
}

$(document).ready(init);

【问题讨论】:

  • 这很有趣。尝试卸载和 beforeunload 事件并回发它们是否有效。如果没有 - 我们将不得不挖掘 phonegap apis
  • 感谢 naugtur!我接受了一些答案,但百分比似乎没有反映它们。不过还是谢谢!!
  • 尝试了 unload 和 beforeunload,它们都没有在应用程序关闭期间触发。
  • 我在 Google 上搜索了一下,看来您必须为 phonegap 中的新事件提交功能请求。现在您唯一能做的就是强制用户在退出之前单击类似保存的按钮,或者每隔一段时间调用您想要的函数。事实上,看到它只保存一个对象,我认为你可以每隔一两秒运行一次......

标签: cordova jquery-mobile


【解决方案1】:

我不能 100% 确定是否使用 unload 事件,因为从技术上讲,这些事件(不确定这是否发生在 PhoneGap 中)也会在加载不同的网页时被触发,即在 PhoneGap 中将 index.html 转换为 about.html应用程序。

至少对于 Android,您可以访问 resumepause 事件。所以你可以这样做:

document.addEventListener('pause', function() { alert('this alert will show up in the background while your app is paused.'); }, false);
document.addEventListener('resume', function() { alert('this alert will show up when you open the app back up.'); }, false);

【讨论】:

    【解决方案2】:

    unload 事件已在 Android 和 Blackberry 中可用,并将很快在所有平台上实施。

    在此处查看 cmets: http://phonegap.lighthouseapp.com/projects/20118-android/tickets/67-missing-event-for-application-shut-down

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2015-02-07
      相关资源
      最近更新 更多