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