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];
});
}
网友评论