Мой вопрос о подписке на несколько живых действий одного и того же типа (одинаковая активность), а затем обрабатывать их отдельно при использовании Push для начала одного из них. Однако, когда я слушаю последовательность pushtostarttokenupdates , я всегда получаю токен тот же , даже когда я называю функцию несколько раз. Но действительно ли это лучший способ сделать это? Я что -то упускаю или я действительно не думал об этом? Я не знаю другого способа извлечь токен начала, но я, вероятно, что -то пропустил? Запустите код в AppDelegate для проверки, но результат будет одинаковым, который будет напечатан дважды. < /P>
import ActivityKit
import SwiftUI
struct FootballActivityAttributes: ActivityAttributes {
var eventId: String
var homeTeam: String
var awayTeam: String
public struct ContentState: Codable, Hashable {
var homeScore: Int
var awayScore: Int
}
}
func getPushToStartToken(eventID: String) async throws -> String? {
print("Running Live Activity: Fetching pushToStartToken for event \(eventID)...")
for await data in Activity.pushToStartTokenUpdates {
let token = data.map {String(format: "%02x", $0)}.joined()
print("Live Activity: Saved pushToStartToken for event \(eventID): \(token)")
return token
}
print("Live Activity: Found no token")
return nil
}
for eventId in ["12345", "67890"] {
Task {
try await getPushToStartToken(eventID: eventId)
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... starttoken