模拟器上的设备令牌请求没有响应

时间:2010-12-02 05:55:25

标签: ios push-notification apple-push-notifications ios-simulator

我是iphone技术的新手,现在我正在使用我需要实现推送通知的应用程序。

我按照链接:

http://mobiforge.com/developing/story/programming-apple-push-notification-services#comment-7850

另外,使用以下代码:

 NSLog(@"Registering for push notifications...");
    [[UIApplication sharedApplication]
  registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeAlert |
  UIRemoteNotificationTypeBadge | 
  UIRemoteNotificationTypeSound)];

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{
    NSString *str = [NSString stringWithFormat:@"Device Token=%@",deviceToken];
    NSLog(str);
}

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err 
{ 
    NSString *str = [NSString stringWithFormat: @"Error: %@", err];
    NSLog(str);    
}

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

事情是,当我运行程序时,我应该在调试器窗口中获取设备令牌,根据代码,我得到的错误如下:

  

“注册时出错。错误:错误   Domain = NSCocoaErrorDomain Code = 3010   “远程通知不是   在模拟器中支持“   的UserInfo = 0x6e055a0   {NSLocalizedDescription =远程   。不支持通知   模拟器}“

我该如何解决这个问题?

请帮助我。

谢谢。

2 个答案:

答案 0 :(得分:4)

错误消息是自我解释,你应该尝试在真实设备上调试不在模拟器上的应用,因为不支持在模拟器上接收推送通知。

答案 1 :(得分:4)

因为模拟器不支持它...在示例中,它在控制台中显示设备标识符。控制台正在显示设备的反馈。获取信息的不是控制台,而是设备发回信息。因此,仅仅因为控制台在Mac上显示信息并不意味着您的Mac能够直接获取该信息。有时它必须由设备发送。尝试在设备上运行它。