我已经实现了以下代码但没有获得设备令牌?
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"deviceToken: %@", deviceToken);
}
答案 0 :(得分:4)
如果您还没有,请拨打registerForRemoteNotificationTypes
中的didFinishLaunchingWithOptions
。有点像:
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)];
如果注册失败,您还应该调用didFailToRegisterForRemoteNotificationsWithError
方法。它得到的NSerror应该告诉你更多关于它可能失败的原因。
答案 1 :(得分:1)
你在试用模拟器吗? 推送通知和相关的appdelagate事件在模拟器上不起作用。
如果您使用的是设备, 确保应用程序的软件包标识符必须与您在iphone privisioning protal上创建AppID时定义的push ssl软件包标识符相同。
答案 2 :(得分:0)
要使用APN注册您的设备,您首先必须致电
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
这通常写在你的AppDelegate中(在didFinishLaunching中)。 然后确保你已经实现了
didRegisterForRemoteNotificationsWithDeviceToken
为您提供设备令牌和
didFailToRegisterForRemoteNotificationsWithError
它会为您提供代码可能遇到的错误。