美文网首页
Unity解决IOS通知授权后导致卡死bug

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

作者: Razy西南 | 来源:发表于2022-03-29 09:20 被阅读0次
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解决IOS通知授权后导致卡死bug

      本文链接:https://www.haomeiwen.com/subject/gswpjrtx.html