【问题标题】:How to use device tokens in different ways in iphone?如何在 iphone 中以不同方式使用设备令牌?
【发布时间】:2009-10-03 12:07:11
【问题描述】:

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

让我详细说明这一方面。

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

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

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

【问题讨论】:

    标签: iphone token device


    【解决方案1】:

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

    - (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];
    }
    

    【讨论】:

    • 感谢您的回答。真的对我有帮助。您能否给我有关设备令牌的任何其他信息。我的意思是每当我启动我的应用程序时,它会为该设备生成不同的令牌吗?如果它生成不同的令牌而不是如何以正确的方式处理它?谢谢,米沙尔·沙阿
    【解决方案2】:

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

    我的意思是每当我启动我的 当时的申请会 为此生成不同的令牌 设备与否?如果它生成 不同于如何处理它的令牌 以正确的方式?

    iOS doc 中的这一段有助于了解设备令牌何时可以在用户设备上更改,以及为什么每次应用启动时都会触发它:

    通过请求设备令牌和 每次都将其传递给提供者 您的应用程序启动,您帮助 确保提供者拥有 设备的当前令牌。如果一个 用户将备份恢复到设备 除了备份的那个 为(例如,用户 将数据迁移到新设备),他或 她必须在 至少一次接收 再次通知。如果用户 将备份数据恢复到新设备 或重新安装操作系统, 设备令牌更改。而且, 从不缓存设备令牌并给予 给您的提供商;总是得到 每当您从系统中获取令牌 需要它。如果您的应用程序有 以前注册,打电话 registerForRemoteNotificationTypes: 导致 iOS 通过设备 立即给代表的令牌 不会产生额外的开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多