1***@qq.com
1***@qq.com
  • 发布:2023-07-19 14:29
  • 更新:2023-07-19 14:29
  • 阅读:651

IOS 监听APP退出

分类:uni-app

let NSNotificationCenterClass = plus.ios.importClass("NSNotificationCenter");
let NSNotificationCenterObj = NSNotificationCenterClass.defaultCenter();
let num = 0 ;
plus.ios.invoke(NSNotificationCenterObj, "addObserverForName:object:queue:usingBlock:",
"UIApplicationWillTerminateNotification", null, null, function() {
// UIApplicationWillTerminateNotification 是应用即将终止的时候调用,但是我发现并没有调用 ,
// 得出最终结论 :
// 1.应用在前台,双击 Home 键 ,终止应用 , UIApplicationWillTerminateNotification 调用
// 2.应用在前台,单击 Home 键,进入桌面 , 再终止应用 UIApplicationWillTerminateNotification 不会被调用.
//应用在前台,双击Home键,杀掉调用 ,但是应用在后台,双击Home键, 再终止应用不会被通知
});
plus.ios.invoke(NSNotificationCenterObj, "addObserverForName:object:queue:usingBlock:",
"UIApplicationDidBecomeActiveNotification", null, null, function(){
num = 0;
console.log('启动');
});
plus.ios.invoke(NSNotificationCenterObj, "addObserverForName:object:queue:usingBlock:",
"UIApplicationDidEnterBackgroundNotification", null, null, function(){
num++
if(num ==2){
//杀死APP进程关闭直播
uni.$TrtcCloud.exitRoom();
}
console.log(num)
});
觉得用uni-app onHide生命周期也可以实现 ,因为无论是退出APP还是隐藏在后台onHide都会被执行,那么做个定时任务通知服务端APP退出了。
或者说做个debounce在连续的操作中,无论进行了多长时间,只有某一次的操作后在指定的时间内没有再操作,这一次才被判定有效 。

1 关注 分享
BoredApe

要回复文章请先登录注册