0

我想在我的应用程序中使用推送通知。我创建了一个唯一的应用程序 ID 并创建了推送开发证书。还使用该唯一的应用程序 ID 创建了配置文件。我将用于注册设备的代码放在应用程序终止方法中,以便当我的应用程序关闭它已启用推送通知,当它启动时禁用推送通知。顺便说一句,目前我正在使用 ApplicationDidFnishLaunching 方法并注册推送通知。我认为该应用程序已注册推送通知,因为它要求允许在 alertview 上进行推送通知。但我我从来没有找到设备令牌。应用程序没有调用方法。顺便说一句,我已经在 ApplicationDelegate 中编写了这个方法。

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"devToken=%@",deviceToken);
[self alertNotice:@"" withMSG:[NSString stringWithFormat:@"devToken=%@",deviceToken] cancleButtonTitle:NSLocalizedString(@"OK",@"") otherButtonTitle:@""];
}

即使我在这个方法中设置了一个断点,但它没有调用。我的 iPhone 3GS 越狱了。任何人都知道为什么我没有得到设备令牌。

4

2 回答 2

1

当您调用registerForRemoteNotificationTypes:异步注册过程时,您的应用程序会联系 Apple 的服务器。您自己的代码继续执行,这意味着应用程序将被关闭。最有可能的是,注册没有成功,但即使成功了,该进程也不再存在,这意味着application:didRegisterForRemoteNotificationsWithDeviceToken:无法调用。

application:didReceiveRemoteNotification:与其在每次应用启动时都尝试禁用通知,不如在应用关闭时忽略传入的通知。它仍然会注册以接收通知,并且当应用程序未运行时,不会忽略通知。

于 2009-11-30T14:35:26.410 回答
0

据我了解,Apple 忽略了来自越狱 iPhone 的令牌请求。我不想这么说,但我认为这可能是你的问题。

于 2009-11-30T23:53:00.770 回答