[英]iPhone Push Notifications
我有一个使用推送通知的iPhone应用程序。 我对此的理解是,在发送通知之前,我需要每个iPhone的“设备令牌”。
使用我拥有的测试iPhone,我可以从xcode接口获取设备令牌,并将它们存储在数据表中,Push Notification PHP脚本用来发送通知。
如何将推送通知发送到安装了我不知道设备令牌ID的应用的iPhone。
我想我的问题是; 在向iPhone发送通知之前,我需要设备令牌吗?
如果我确实需要设备令牌,如何使用我的应用程序从iPhone获得它。
您无法通过模拟器收到任何推送通知。
您不会直接发送通知。 您对Apple的服务器说,此设备令牌有一个通知。 然后,iPhone本身会自动要求接收推送通知(如果有的话)。
要回答您的问题:是的。 没有设备令牌,您将无法将通知注册到Apple的服务器。 然后,您必须对该设备实施此注册以获得DeviceToken:
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken
您应该在这里查找== 推送通知编程指南
- (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
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err {
NSLog(@"Error in registration. Error: %@", err);
}
请参阅apple Local和Push Notification编程指南中的代码,首先必须在应用程序中调用registerForRemoteNotificationTypes,然后在两个委托中,可以获取或不获取dev令牌,此令牌来自APNS,因此,一旦获取,您将将其发送到您的服务以进行存储。 而且您无法从模拟器获得设备令牌。
您的推送通知服务将必须使用设备令牌将通知发送到您的应用,因此您肯定需要它。 此外,您还必须从Apple开发中心获取SSL证书,该证书需要有效的iOS付费开发人员ID。
有关更多信息,请查看“ 推送通知编程指南” ,它是一个很大的帮助。 此外,我尝试了这个PHP库来测试推送通知服务,这很好,您可以找到它的单元测试,然后将设备令牌粘贴到其中,然后运行它,您将获得消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.