Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS启动时注册远程通知?_Ios_Objective C_Push Notification_App Startup - Fatal编程技术网

在iOS启动时注册远程通知?

在iOS启动时注册远程通知?,ios,objective-c,push-notification,app-startup,Ios,Objective C,Push Notification,App Startup,我正在使用voip后台模式使其在iOS引导时启动。 我将希望在启动时启动的所有代码都放入didFinishLaunchingWithOptions,但如果我尝试注册远程通知,它将不起作用 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSUserDefaults standardUserDefaults] set

我正在使用voip后台模式使其在iOS引导时启动。 我将希望在启动时启动的所有代码都放入didFinishLaunchingWithOptions,但如果我尝试注册远程通知,它将不起作用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"lastboot"];
   [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
}
如果我在standardUserDefaults上读取“lastboot”键,我可以看到应用程序是在系统启动时启动的,但如果我尝试发送通知,则不会附加任何内容

从日志中,我可以看到在启动时调用了didRegisterForRemoteNotificationsWithDeviceToken

如果我手动打开应用程序,远程通知效果很好

我的应用不是针对应用商店的,而是针对非越狱设备的。
有什么建议吗?

您需要以交互方式运行应用程序至少一次,以便接受通知权限提示是的,但在重新启动后,它应该可以正常工作。因此,您是说,如果您不将voip标志添加到info.plist,您可以注册并接收推送通知吗?也许我没有解释清楚。如果我手动打开应用程序,我会收到推送通知(带或不带voip标志)。当应用程序在启动时打开时,我不会收到通知。我已经解决了我问题中的模棱两可的问题。你的意思是当应用程序在后台时,你没有收到应用程序通知徽章,而当它手动启动时,你没有收到徽章?