找回密码
 立即注册
查看: 454|回复: 0

Unity解决IOS通知授权后导致卡死bug

[复制链接]
发表于 2022-3-29 21:55 | 显示全部楼层 |阅读模式

ios.jpeg

    这是我之前遇到的一个Unity自身缺陷的bug,目前看官方并没有打算解决,也可能是我的Unity编辑器版本过低才没有引得关注吧,不过我自己定位到卡死代码的位置。找到UnityNotificationLifeCycleManager.h文件
- (void)load {    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        [UnityNotificationLifeCycleManager sharedInstance];        UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];        center.delegate = [UnityNotificationManager sharedInstance];    });}
    这段代码就是管理弹出授权通知提示框代码,屏蔽里面方法那么久不会弹出提示框,导致卡死原因也是这个,每次启动app时候,就会导致这段代码在获取通知权限之前被执行,而此时是不需要弹出通知授权框的,IOS本身也不支持多次弹出授权提示窗,所以我的方法是,首次启动后,弹出提示框,之后的每次启动仅加上延时可解决。
+ (void)load {    [[UnityNotificationLifeCycleManager sharedInstance] performSelector:@selector(loadDelay) withObject:@"aaa" afterDelay:5.0];}- (void)loadDelay {    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        [UnityNotificationLifeCycleManager sharedInstance];        UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];        center.delegate = [UnityNotificationManager sharedInstance];    });}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 15:31 , Processed in 0.091824 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表