我想在我的应用程序中使用 Apple 推送通知服务。我阅读了几个教程,但仍然不明白一些东西。据说我需要定期向服务器发送设备令牌(在我的情况下,它是用 PHP 编写的服务器)。但是我多久发送一次以及如何生成设备令牌?
提前致谢。
我想在我的应用程序中使用 Apple 推送通知服务。我阅读了几个教程,但仍然不明白一些东西。据说我需要定期向服务器发送设备令牌(在我的情况下,它是用 PHP 编写的服务器)。但是我多久发送一次以及如何生成设备令牌?
提前致谢。
您应该在每次应用启动时注册推送通知(使用registerForRemoteNotificationTypes
)。您应该在每次更改时将设备令牌本地存储在您的应用程序中并将其发送到您的服务器。您应该将获得didRegisterForRemoteNotificationsWithDeviceToken
的设备令牌与您存储的最后一个设备令牌进行比较。通过这种方式,您可以保存一些对服务器的调用(因为实际上设备令牌很少更改)。
这是注册码(取自 Apple Push Notifications Programming Guide):
- (void)applicationDidFinishLaunching:(UIApplication *)app {
// other setup tasks here....
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
// Delegation methods
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
const void *devTokenBytes = [devToken bytes];
self.registered = YES;
[self sendProviderDeviceToken:devTokenBytes]; // custom method
}
您应该在每次应用启动或激活时发送它,因为它可能随时更改。设备令牌在成功注册到 Apple 服务器后由推送通知 API 提供给您。