I have start new live activity with push notifications,but sometimes this code"activity.pushTokenUpdates" can not callback to me,so I can't update the activity with push notifications. And I already click “Allow” button in my live activity widget.How can I solve this problem. Here are my code:
fileprivate func observeLiveActivityForRemoteCreate() {
// obverser pushToStartToken
Task {
if #available(iOS 17.2, *) {
var beforeToken = ""
for await pushToken in Activity<HLPlatformActivityAttributes>.pushToStartTokenUpdates {
let pushTokenStr = pushToken.map{String(format: "%02.2hhx", arguments: [$0])}.joined()
// avoid send duplication
if beforeToken == pushTokenStr {
return
}
beforeToken = pushTokenStr
// send pushToStartToken to service
await HLPlatformLiveActivityBridge.registerLiveActivity(withAttributesName: self.activityAttributesName, pushToStartToken: pushToken, seq: seqCreate(), pushType: .jPush)
}
}else {
// Fallback on eralier versions
}
// obverser live activity update
Task {
for await activity in Activity<HLPlatformActivityAttributes>.activityUpdates {
if let businessLiveActivityId = activity.attributes.businessLiveActivityId, let liveActivityId = activity.attributes.liveActivityId {
Task {
var beforeToken = ""
for await pushToken in activity.pushTokenUpdates {
// here the problem:sometimes pushToken not update to me
let pushTokenStr = pushToken.map{String(format: "%02.2hhx", arguments: [$0])}.joined()
// avoid send duplication
if beforeToken == pushTokenStr {
return
}
beforeToken = pushTokenStr
// send pushToken to service
}
}
Task {
for await stateUpdate in activity.activityStateUpdates {
if stateUpdate == .active {
// live activity create
}
}
}
}
}
}
}