美文网首页
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