程序关闭后,onExit回调未能触发
程序关闭后,onExit回调未能触发
测试过的手机:
华为mate20
操作步骤:
app.vue内,定义
onExit: function() {
console.log('App exit')
},
预期结果:
程序退出时,会有log输出
实际结果:
程序退出时,没有log输出
bug描述:
在app.vue内,定义了onExit()
onExit: function() {
console.log('App exit')
},
可是程序关闭了后,没有进入onExit。
3 回复
onExit是 安卓 uni-app-x 中使用的,uni-app 不兼容
最后怎么解决的呢
关于uni-app中onExit回调未触发的问题,这是Android平台的特性限制导致的。在Android系统中,应用退出时系统会直接终止进程,不会给应用执行回调的机会。这是Android的设计机制,并非uni-app的bug。
对于需要监听应用退出的场景,建议使用以下替代方案:
- 监听页面隐藏事件(onHide)
onHide: function() {
console.log('App hide');
}
- 使用plus.runtime.quit监听退出事件(仅5+App可用)
plus.runtime.quit = function() {
console.log('App quit');
// 必须调用默认退出方法
plus.runtime.quit();
};