2

我无法使用 AWS Pinpoint 控制台执行直接消息传递。无论我提供 EndpointID 还是 DeviceToken,每次尝试都会导致“无法向...提交推送通知”错误。我猜我没有提供有效的设备令牌。

在 iOS 上,deviceToken 作为 NSData 对象传递。我可以使用 [deviceToken description] 将它的值作为字符串打印到控制台。这是我粘贴到直接消息控制台中的字符串(在修剪尖括号和内部空格字符之后)。这是从本机 deviceToken 生成字符串以用于 AWS 消息传递的预期方式吗?我的另一个猜测,[[NSString alloc] initWithData:deviceToken encoding:NSUTF8StringEncoding],返回 nil。

4

2 回答 2

0

通常我会这样做:

deviceToken.map { String(format: "%02.2hhx", $0) }.joined()

但是在检查 AWS 文档网站之后,他们基本上说要打印设备令牌并删除空格。

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{
    NSLog(@"deviceToken: %@", deviceToken); 
}

请查看此网站: Apple 推送通知服务入门

于 2018-04-25T13:40:57.890 回答
0

Data对象已经包含一个方法来轻松地做到这一点

deviceToken.toHexString()

于 2019-04-25T07:23:53.003 回答