全部产品
云市场

如何获取 iOS deviceToken 十六进制字符串

更新时间:2020-03-25 18:40:01

iOS App 会从 APN 服务器处获得的用户推送服务的 deviceToken,开发者需要主动把该 deviceToken 绑定到 mPaaS 推送服务中。在测试开发阶段,开发者可能需要通过 deviceToken 进行消息推送测试,例如在移动推送(MPS)控制台进行 Device 维度的推送测试。在 MPS 控制台,目前只接受十六进制字符串格式的 deviceToken,获取该字符串的一种方式如下:

  1. //iOS 13以下,可以通过如下方式获取hexstring
  2. NSString *hexTokenString = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
  3. hexTokenString = [hexTokenString stringByReplacingOccurrencesOfString:@" " withString:@""];
  4. if ([hexTokenString length] > 0) {
  5. NSLog(@"push DeviceToken is: %@",hexTokenString);
  6. }
  7. // iOS 13,可以通过如下方式获取hexstring
  8. NSUInteger dataLength = deviceToken.length;
  9. if (dataLength == 0) {
  10. return;
  11. }
  12. const unsigned char *dataBuffer = (const unsigned char *)deviceToken.bytes;
  13. NSMutableString *hexTokenString = [NSMutableString stringWithCapacity:(dataLength * 2)];
  14. for (int i = 0; i < dataLength; ++i) {
  15. [hexTokenString appendFormat:@"%02x", dataBuffer[i]];
  16. }
  17. NSLog(@"push DeviceToken token:%@", hexTokenString);