- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
在iOS13上,苹果回传的deviceToken格式发生了变化,如下图:
这里需要判断下将token处理成统一格式,代码如下:
- (NSString *)getHexStringForData:(NSData *)data
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 13) {
if (![data isKindOfClass:[NSData class]]) {
return @"";
}
NSUInteger len = [data length];
char *chars = (char *)[data bytes];
NSMutableString *hexString = [[NSMutableString alloc]init];
for (NSUInteger i=0; i<len; i++) {
[hexString appendString:[NSString stringWithFormat:@"%0.2hhx" , chars[i]]];
}
return hexString;
} else {
NSString *myToken = [[data description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
myToken = [myToken stringByReplacingOccurrencesOfString:@" " withString:@""];
return myToken;
}
}