在我的应用程序中,我将使用pushNotification。那么在这种情况下,我如何以不同的方式使用设备令牌?
让我详细说明这方面。
每当我在那时运行我的应用程序时,如果我在同一设备中反复运行应用程序而不是生成相同的设备令牌,那么将生成设备令牌吗?
如果它将生成与Apple文档不同的设备令牌,那么它是如何在服务器端处理的。 从客户端(即设备令牌或其他参数)发送到服务器端以及服务器端具有哪种类型的场景需要什么?
如果有人有任何解决方案或任何代码片段或任何有用的链接,将不胜感激。
答案 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传递设备 令牌立即给代表 不会产生额外的开销。