2

我将使用 AppNotify 服务在我的应用程序中实现推送通知。要完成该服务的设置,我需要获取我的设备令牌。我尝试使用 Apple 文档中的代码。在模拟器上我得到一个错误(当然是预期的)。在我的设备上,我没有收到错误消息,但我也没有收到令牌。没有调用委托方法。这是代码(第一个位在 applicationDidFinishLaunching 中):

    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];



- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
//const void *devTokenBytes = [devToken bytes];
//self.registered = YES;
//[self sendProviderDeviceToken:devTokenBytes]; // custom method
NSLog(@"Success");
NSLog(@"Token = %@", devToken);
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
    NSLog(@"Error in registration. Error: %@", err);
}

任何想法为什么会发生这种情况?

谢谢

4

2 回答 2

2

曾经,您必须知道远程通知在模拟器上不起作用。

问候

于 2010-08-13T08:33:46.143 回答
2

还添加以下方法:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{
       for (id key in userInfo)
       {
             NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
        }    
}

如果您编写了正确的代码(如您所示),则上述 3 种方法(您编写的 2 种和我上面的方法)中的一种会被调用。如果您在设备上没有收到任何错误,请等待一段时间(理想情况下为 10 秒,但也可能需要更长的时间)以调用 didRegisterForRemoteNotificationsWithDeviceToken 方法。问候。

于 2011-09-06T09:15:05.863 回答