gpt4 book ai didi

ios - 在应用程序终止和设备重启后,PushKit通知未到达

转载 作者:行者123 更新时间:2023-12-01 16:30:59 24 4
gpt4 key购买 nike

我的iOS应用程序即使已关闭也可以成功接收VoIP推送通知,这要归功于PushKit。失败时只有一种情况:

如果我通过标准任务切换器刷出(终止)应用程序并重新启动设备。

一开始,仅在重启设备后才遇到此问题,如以下问题所述:Troubleshooting post-boot push notification delivery failures
后台任务黑客帮助了我,非常感谢作者,可惜我无法添加任何分数。

现在,我陷入了这个问题。通知不会到达,因为如果用户在重新启动设备之前终止了该应用程序,则在设备启动时根本不会调用didFinishLaunchingWithOptions

已检查我的应用程序的后台功能:

  • IP语音
  • 远程通知

  • 这是我的代码段:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
    pushRegistry.delegate = self;
    pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
    self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
    self.backgroundTask = UIBackgroundTaskInvalid;
    }];
    return YES;
    }

    - (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
    self.backgroundTask = UIBackgroundTaskInvalid;
    NSLog(@"Push token received, probably!");
    }

    最佳答案

    我没有得到任何解决方案,但尽管如此,我还是设法通过了我的应用程序的要求,这个问题不是什么大问题。我确实强烈感觉到iOS是按这种方式设计的,即如果用户关闭了您的应用程序,那么即使在后台也没有任何可以启动您的应用程序的沉默。
    当然,我可能错了,很长一段时间没有使用iOS了,我相信很多事情已经改变了。
    请随时证明我错了,并描述在iOS平台上是否始终存在针对此问题的适当解决方案,或者也许现在有一些解决此问题的新方法。

    关于ios - 在应用程序终止和设备重启后,PushKit通知未到达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31706942/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com