应用关闭前的离子运行功能
Posted
技术标签:
【中文标题】应用关闭前的离子运行功能【英文标题】:Ionic run function before app closes 【发布时间】:2016-05-04 04:08:16 【问题描述】:我是否可以调用某种函数来监听应用程序是否即将退出、关闭或进入后台。基本上是任何表示“用户已停止使用应用程序”的事件?
我是我的应用程序,我建立了一个“用户日志”,在用户浏览应用程序时跟踪他们。我不想在这些事件发生时不断向服务器发送少量数据,而是想在用户停止使用应用程序之前一次性发送整个批次(再次,这是否意味着完全关闭应用程序,将其发送到背景等)
最后,如果确实存在这样的功能.. 你把那个功能放在哪里?在你的app.js
?还是您必须将该侦听器放在应用程序的每个控制器中?
【问题讨论】:
【参考方案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
事件也会在应用待机或其他一些导致焦点模糊的操作上运行。您可以在pause
和resume
事件中看到很多日志。我猜不存在真正的应用关闭前事件。因为退出不应该被应用程序延迟。它是由操作系统(和用户)控制的。在这种情况下运行代码将是时间紧迫的。以上是关于应用关闭前的离子运行功能的主要内容,如果未能解决你的问题,请参考以下文章
离子电容器 iOS Firebase 应用程序无法启动 [关闭]