我最终尝试做的是使用推送通知更新LiveActivity
,所以对我来说,第一步是能够从Push Notification Console发送推送通知到我的设备。
我目前正在使用模拟器设备,我的应用程序组织如下:
- 主目标具有捆绑包ID
com.nick.main
- Widget目标具有捆绑包ID
com.nick.main.widget
这就是我试图获得代币的方式:
do {
let Activity = try Activity<Attributes>.request(
attributes: Attributes2,
contentState: initialContentState,
pushType: .token)
Task {
for await pushToken in deliveryActivity.pushTokenUpdates {
let pushTokenString = pushToken.reduce("") { $0 + String(format: "%02x", $1) }
print("pushTokenString: \(pushTokenString)")
}
}
} catch (let error) {
print("Error requesting Live Activity \(error.localizedDescription)")
}
字符串
x1c 0d1x的数据
当它运行时,它确实从print("pushTokenString: \(pushTokenString)")
打印出一个令牌,这就是我试图在推送通知控制台上使用的。我在推送通知控制台上尝试了设备令牌验证程序,当我将令牌放在检查它时,我总是得到错误:Error: Device token should be a hex string
。我还尝试使用推送通知控制台的发送功能,选择不同的捆绑包ID,每次尝试时都会产生以下错误:
{
"code": 400,
"message": "bad-request",
"reason": "Invalid push token",
"requestUuid": "53f450a0-1160-4be3-aa37-bbd65ba79e58"
}
型
我还想补充一下,我也尝试了这个:
let pushTokenString = pushToken.reduce("") { $0 + String(format: "%02.2hhx", $1) }
型
它生成的令牌与
let pushTokenString = pushToken.reduce("") { $0 + String(format: "%02x", $1) }
型
以下是生成的令牌的两个示例:80340949ad01bdb0db1bb77332cd7dd9721a8dc9758960d59c112d3af61af6b96b8c6cfe1bedc3cdb8cd240f57b65a6565dc7e17e0e03ee2730bd8745a874912dc284d4d4081e73a8c7a1d5feada388b495734a47f397cea198983fa1629f3db9468bb0e04c351c600c6ccbffba2a7b8e79023b0b0379641cedfe73619b1fc5b
个806169d3b506558327fabb72a85fe9f3d840cfa4980dae98dd51574ab1271b8ffa251bdb87175d1b16b1445aa6a8266ac86be4d4223aaaeaa5500f94452074843985a855cd53527f79299480ca2e9b9a3fecf68c7ce472a4c618cdfe148646c46c143f40985c26ad40a435df2808a61d9026d2c8a9def5e36f1b3e36bfe8a3b2
个
这两个都有256的长度,但我相信长度需要64。
有什么想法/建议我错过了什么?
1条答案
按热度按时间ar5n3qh51#
最终的问题是我在iOS模拟器上生成了令牌。当我在物理设备上尝试时,它生成了一个有效的令牌,并按预期工作。