0

在我的应用程序中,我将使用 pushNotification。那么在这种情况下,我如何以不同的方式使用设备令牌?

让我在这方面更详细地说明。

每当我在那个时候运行我的应用程序时,都会生成设备令牌,如果我在同一个设备上一次又一次地运行应用程序,它会不会生成相同的设备令牌?

如果它会生成与 Apple 文档不同的设备令牌,那么它在服务器端如何处理。?从客户端(即设备令牌或其他参数)发送到服务器端究竟需要什么以及服务器端具有相同的哪种类型的场景?

如果有人有任何解决方案或任何代码片段或任何有用的链接,将不胜感激。

4

2 回答 2

3

这是一个示例,不一定是工作代码:

- (void)sendProviderDeviceToken:(NSString *)tokenString {
    NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];

    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];
    UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

    NSString *data = [NSString stringWithFormat:@"udid=%@&token=%@&id=%@&type=%i", udid, tokenString, bundleID, type];
    NSString *escapedData = [[data description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSString *httpRequestURLString = [NSString stringWithFormat:@"http://%@/RegisterDevice.cgi?%@", kRegistrationURI, escapedData];
    NSURL    *httpRequestURL       = [NSURL URLWithString:httpRequestURLString];
}
于 2009-10-03T13:30:10.257 回答
0

Mishal,根据您对 CocoaFu 回答的评论

我的意思是每当我当时启动我的应用程序时,它都会为该设备生成不同的令牌吗?如果它生成不同的令牌而不是如何以正确的方式处理它?

iOS 文档中的这一段有助于理解设备令牌何时可以在用户设备上更改,以及每次应用启动时触发它的原因:

通过在每次应用程序启动时请求设备令牌并将其传递给提供者,您可以帮助确保提供者拥有设备的当前令牌。如果用户将备份恢复到创建备份的设备以外的设备(例如,用户将数据迁移到新设备),他或她必须至少启动一次应用程序才能再次接收通知。如果用户将备份数据恢复到新设备或重新安装操作系统,则设备令牌会更改。此外,永远不要缓存设备令牌并将其提供给您的提供商;始终在需要时从系统获取令牌。如果您的应用程序之前已注册,请调用 registerForRemoteNotificationTypes:

于 2011-02-06T01:48:40.237 回答