-1

我正在尝试从我的 iphone 获取设备令牌。在阅读了stackoverflow中的帖子后,我已经做到了。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert ];
}
  (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken);
}

我在 didRegisterForRemoteNotificationsWithDeviceToken 中设置了一个断点,但它并没有就此停止。我如何确保它被调用?

抱歉这个菜鸟问题..需要一些指导...

4

2 回答 2

1

这可能有任何原因。

您在生成 .cer 文件时做错了什么,或者您没有在 XCode 中安装新的配置,在为推送通知服务配置您的应用程序后删除旧配置。

因此,在为您的应用程序配置苹果推送通知服务时,再次检查配置门户。并再次下载 .cer 文件。然后从 .cer 文件生成 .pem 文件(它包含私钥)。然后再次下载新的配置文件,然后从 XCode 中删除旧的配置并安装新的配置。

然后使用这个:

#pragma mark -
#pragma mark Push Notifications
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)_deviceToken {
    // Get a hex string from the device token with no spaces or < >

    NSString *deviceToken = [[NSString alloc] init];

    deviceToken = [[[[_deviceToken description]
                     stringByReplacingOccurrencesOfString: @"<" withString: @""]
                    stringByReplacingOccurrencesOfString: @">" withString: @""]
                   stringByReplacingOccurrencesOfString: @" " withString: @""];

    NSLog(@"deviceToken = %@",deviceToken);

  }

希望它可以帮助你。

于 2013-05-03T03:52:32.220 回答
0

您必须为您的应用程序创建一个新的配置文件并用它为您的应用程序签名。您必须在设备中运行应用程序才能获取设备令牌。如果您在模拟器中运行应用程序,它将返回错误。

浏览给出的教程

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html

于 2013-05-03T05:13:10.330 回答