如何在iPhone中以不同方式使用设备令牌?

时间:2009-10-03 12:07:11

标签: iphone token device

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

让我详细说明这方面。

每当我在那时运行我的应用程序时,如果我在同一设备中反复运行应用程序而不是生成相同的设备令牌,那么将生成设备令牌吗?

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

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

2 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:0)

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

  

我的意思是每当我发动我的时候   它会在那个时候申请   为此生成不同的令牌   设备与否?如果它产生了   不同的标记比如何处理它   以正确的方式?

iOS doc中的此段有助于了解设备令牌何时可以在用户的​​设备上更改,以及每次应用启动时触发它的原因:

  

通过请求设备令牌和   每次都将它传递给提供者   你的应用程序启动,你帮忙   确保提供者拥有   设备的当前令牌。如果一个   用户将备份还原到设备   除备份之外的那个   为(例如,用户)创建   将数据迁移到新设备),他或   她必须在那里启动申请   至少一次接收它   再次通知。如果是用户   将备份数据还原到新设备   或重新安装操作系统,   设备令牌更改。此外,   永远不要缓存设备令牌并给予   那给你的提供者;永远得到   无论何时你来自系统的令牌   需要它。如果你的申请有   以前注册,打电话   registerForRemoteNotificationTypes:   导致iOS传递设备   令牌立即给代表   不会产生额外的开销。