繁体   English   中英

iPhone推送通知

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM