【问题标题】:device token change in another app另一个应用程序中的设备令牌更改
【发布时间】:2015-04-05 00:31:04
【问题描述】:

我在 iPad 上编写了 3 个应用程序来获取设备令牌,但每个应用程序都获得了不同的设备令牌。

app1:4e8eb1d864c80fd8426615cd8ca4133c8bde78c30910cd1a8b82c917b612f38d
app2:2645100209412c457e87744c0af9ff323e28f6b2195c0fa9b835ddeebfe1391b
app3:f5958b3bad17feda02e64f9814f01cfafdda0b8283977214916c3d7eaa8b8dc8

这正常吗?我检查了一些信息,这些信息说同一设备上的不同应用程序将获得相同的设备令牌......但根据我的测试,这似乎不是真的。

任何评论将不胜感激:)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
{
    [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    [[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeNewsstandContentAvailability];
}

return YES;

}

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken{

NSString *newToken =[deviceToken description];
newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"*******************");
NSLog(@"Token%@",newToken);}

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
NSLog(@"errorwwwwww:%@",[error description]);}

【问题讨论】:

  • 你能上传一些关于如何创建设备令牌的代码吗?
  • 您能否指出“同一设备上的不同应用程序将获得相同的设备令牌”的信息?这不是真的,这种行为是正常的,请检查我的答案:)

标签: ios objective-c iphone device devicetoken


【解决方案1】:

完全正常。设备令牌会随着应用的捆绑 ID 和用于创建它的证书而变化。

【讨论】:

    【解决方案2】:

    这很正常!

    设备令牌同时标识一个设备 一个应用程序。想一想,这是完全有道理的,因为当收到推送通知时,设备令牌用于在 iOS 中识别应用程序。如果每个应用程序都会返回设备令牌,那么 iOS 将不知道在推送通知到达设备后将其发送到何处。

    【讨论】:

    • 其实可以,因为每个App ID都有自己的SSL证书来连接APN服务器。
    • 好吧,理论上你是对的。但是我认为这不是很实用,而苹果选择设计 APNS 基础设施的方式就是我认为的一个标志。我在一家部署了白标应用程序的公司工作,因此能够区分同一设备上的 应用程序更为重要,对于这种情况,只需如我在答案中所述,同时为设备和应用分发设备令牌
    • @nburk 非常感谢!我从一些中文博客上阅读了这些信息......我意识到他们的信息是错误的。错误的信息只是一次又一次地复制。我很抱歉问这些问题。
    • 别抱歉,您无法了解得更清楚,来 SO 寻求清晰是完全可以的 :) 请注意,并非您在网络上阅读的所有内容都一定是正确的
    猜你喜欢
    • 2013-02-18
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多