in mpush_ios_demo/mpush_ios_demo/LiveActivity/LiveActivityObserver.swift [87:137]
func taxiObserver() {
Task {
if #available(iOS 17.2, *) {
for await tokenData in Activity<mpushTaxiAttributes>.pushToStartTokenUpdates {
let mytoken = tokenData.map { String(format: "%02x", $0) }.joined()
if (TokenManager.shared.taxiStartToken != mytoken) {
TokenManager.shared.taxiStartToken = mytoken;
print("Activity startToken=\(mytoken) ")
CloudPushSDK.registerLiveActivityStartToken(tokenData, forActivityAttributes: "mpushTaxiAttributes") { res in
print("Activity register start token result: \(res.success)")
}
}
}
} else {
// Fallback on earlier versions
}
}
Task {
if #available(iOS 16.2, *) {
for await activity in Activity<mpushTaxiAttributes>.activityUpdates {
print("===== Observing the activity: \(activity.id) \(activity.attributes) ==========")
Task {
for await tokenData in activity.pushTokenUpdates {
let token = tokenData.map { String(format: "%02x", $0) }.joined()
print("==== pushToken = \(token)")
if TokenManager.shared.taxiPushToken != token {
TokenManager.shared.taxiPushToken = token
print("Observer Activity pushToken: \(activity.id) token: \(token)")
CloudPushSDK.registerLiveActivityPushToken(tokenData, forActivityId: activity.id) { res in
print("Activity register push token result: \(res.success)")
}
}
}
}
Task {
for await state in activity.activityStateUpdates {
print("Observer Activity state: \(activity.id) state: \(state)")
CloudPushSDK.syncLiveActivityState("\(state)", forActivityId: activity.id) { res in
print("Sync state result: \(res.success)")
}
}
}
}
} else {
// Fallback on earlier versions
}
}
}