【问题标题】:Ionic run function before app closes应用关闭前的离子运行功能
【发布时间】:2016-05-04 04:08:16
【问题描述】:

我是否可以调用某种函数来监听应用程序是否即将退出、关闭或进入后台。基本上是任何表示“用户已停止使用应用程序”的事件?

我是我的应用程序,我建立了一个“用户日志”,在用户浏览应用程序时跟踪他们。我不想在这些事件发生时不断向服务器发送少量数据,而是想在用户停止使用应用程序之前一次性发送整个批次(再次,这是否意味着完全关闭应用程序,将其发送到背景等)

最后,如果确实存在这样的功能.. 你把那个功能放在哪里?在你的app.js?还是您必须将该侦听器放在应用程序的每个控制器中?

【问题讨论】:

    标签: javascript angularjs cordova ionic-framework


    【解决方案1】:

    此代码适用于 ionic2 本机应用程序退出和浏览器。在浏览器中,当按下 URL 重新加载按钮或关闭浏览器选项卡时会发生这种情况。

    platform.pause.subscribe(e => {
      this.OptionsSave();
    });
    
    window.addEventListener('beforeunload', () => {
      this.OptionsSave();
    });
    

    【讨论】:

      【解决方案2】:

      您可以从 Cordova 文档中查看此事件列表:

      https://cordova.apache.org/docs/en/5.4.0/cordova/events/events.html

      特别是Pause event:

      当应用程序进入后台时触发该事件。

      document.addEventListener("pause", yourCallbackFunction, false);

      【讨论】:

      • 谢谢,你会把这个函数放在哪里? App.js 还是在每个控制器中都有这样的监听器?
      • IMO 你可以在 app.run() 函数内的 app.js 中添加这些事件监听器
      • 这在有人刷出应用的情况下效果很好,但是当我最小化或切换到不同的应用时有没有办法调用函数?
      • 您是否找到上述解决方案,我也需要相同的事件,如果应用程序被用户关闭,则更新数据库中的字段值。
      • pause 事件也会在应用待机或其他一些导致焦点模糊的操作上运行。您可以在pauseresume 事件中看到很多日志。我猜不存在真正的应用关闭前事件。因为退出不应该被应用程序延迟。它是由操作系统(和用户)控制的。在这种情况下运行代码将是时间紧迫的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2010-12-19
      • 2021-08-19
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多