How to Create an iOS Live Activity Message

Live Activity Funktionalität zum Projekt hinzufügen

1. Info.plist-Datei konfigurieren

Fügen Sie der Info.plist-Datei im Hauptprojekt ein Schlüssel-Wert-Paar hinzu, wobei der Schlüssel NSSupportsLiveActivities und der Wert YES ist.

alt text


2. Widget Extension hinzufügen

2.1 Neues Target erstellen

Gehen Sie zu Datei > Neu > Target.

2.2 Widget Extension auswählen

alt text

2.3 Widget Extension konfigurieren

Aktivieren Sie das Kontrollkästchen „Live Activity einbinden“.

alt text

Klicken Sie auf „Fertigstellen“.

Xcode erstellt nun eine Live Activity für Sie.

LiveActivityWidgetAttributes definieren die Attribute der Live Activity, einschließlich veränderbarer und unveränderlicher Eigenschaften.

Die LiveActivityWidgetLiveActivity-Struktur passt das Erscheinungsbild der Live Activity an.

alt text

Anschließend erlauben Sie im LiveActivityWidgetBundle die Anzeige der Live Activity.

alt text


3. Live Activity testen

Starten Sie eine Live Activity im Hauptprojekt, überwachen Sie Änderungen des Push-Tokens und melden Sie das Push-Token bei EngageLab an. Nach erfolgreicher Registrierung können Sie über den Dienst von EngageLab Nachrichten an die Live Activity auf dem Gerät senden.

func startLiveActivity1() { let initialContentState = MTLAAttributes.ContentState(eventStr: "begin", eventTime: 1) let activityAttributes = MTLAAttributes(name: "LiveActivity", number: 33, tag: "") do { // Activity erstellen let activity = try Activity.request(attributes: activityAttributes, contentState: initialContentState, pushType: PushType.token) // Auf Änderungen des pushToken lauschen Task { for await pushtoken in activity.pushTokenUpdates { let pushtokenstr = pushtoken.map { String(format: "%02.2hhx", arguments: [$0]) }.joined() // Live Activity bei EngageLab registrieren, um Benachrichtigungen über die LiveActivityId auf der Push-Plattform zu aktualisieren MTPushService.registerLiveActivity("my_define_liveactivity_id", pushToken: pushtoken, completion: { code, liveactivityId, token, seq in print("Ergebnis:\(code)") }, seq: 1) } } } catch { print("Fehler beim Anfordern der Live Activity \(error.localizedDescription).") } }
              
              func startLiveActivity1() {
    
    let initialContentState = MTLAAttributes.ContentState(eventStr: "begin", eventTime: 1)
    let activityAttributes = MTLAAttributes(name: "LiveActivity", number: 33, tag: "")
    
    do {
      // Activity erstellen
      let activity = try Activity.request(attributes: activityAttributes, contentState: initialContentState, pushType: PushType.token)
      
      // Auf Änderungen des pushToken lauschen
      Task {
        for await pushtoken in activity.pushTokenUpdates {
          let pushtokenstr = pushtoken.map { String(format: "%02.2hhx", arguments: [$0]) }.joined()
          // Live Activity bei EngageLab registrieren, um Benachrichtigungen über die LiveActivityId auf der Push-Plattform zu aktualisieren
          MTPushService.registerLiveActivity("my_define_liveactivity_id", pushToken: pushtoken, completion: { code, liveactivityId, token, seq in
            print("Ergebnis:\(code)")
          }, seq: 1)
        }
      }
      
    } catch {
      print("Fehler beim Anfordern der Live Activity \(error.localizedDescription).")
    }
  }

            
Diesen Codeblock im schwebenden Fenster anzeigen

Ab iOS 17.2 ermöglicht Apple das Starten einer Live Activity per Push-Benachrichtigung, basierend auf einem pushToStartToken. Verwenden Sie die Funktion pushToStartTokenUpdates, um auf Änderungen des pushToStartToken der Live Activity zu lauschen und diesen an EngageLab zu melden.

func pushToStart() { Task { if #available(iOS 17.2, *) { var beforeToken = "" for await pushtoken in Activity<MTLAAttributes>.pushToStartTokenUpdates { let pushtokenstr = pushtoken.map { String(format: "%02.2hhx", arguments: [$0]) }.joined() print("pushToStartToken: MTLAAttributes -> \(pushtokenstr)") if beforeToken == pushtokenstr { return } beforeToken = pushtokenstr MTPushService.registerLiveActivity("MTLAAttributes", pushToStartToken: pushtoken, completion: { code, alias, token, seq in print("Registrierung MTLAAttributes pushToStartToken Ergebnis: \(pushtokenstr) Ergebnis:\(code) seq:\(seq)") }, seq: seq()) } } else { // Fallback für frühere Versionen } } }
              
              func pushToStart() {
    Task {
      if #available(iOS 17.2, *) {
        var beforeToken = ""
        for await pushtoken in Activity<MTLAAttributes>.pushToStartTokenUpdates {
          
          let pushtokenstr = pushtoken.map { String(format: "%02.2hhx", arguments: [$0]) }.joined()
          print("pushToStartToken: MTLAAttributes -> \(pushtokenstr)")
          if beforeToken == pushtokenstr {
            return
          }
          beforeToken = pushtokenstr
          
          MTPushService.registerLiveActivity("MTLAAttributes", pushToStartToken: pushtoken, completion: { code, alias, token, seq in
            print("Registrierung MTLAAttributes pushToStartToken Ergebnis: \(pushtokenstr) Ergebnis:\(code) seq:\(seq)")
          }, seq: seq())
        }
      } else {
        // Fallback für frühere Versionen
      }
    }
}

            
Diesen Codeblock im schwebenden Fenster anzeigen

Mit diesen Best Practices und der richtigen Integration von Live Activities, Push-Benachrichtigungen und Widget Extensions in Ihr iOS-Projekt schaffen Sie eine optimale Nutzererfahrung und stellen sicher, dass Ihre App stets aktuelle Informationen effizient bereitstellt.

Jetzt mehr erfahren oder Demo buchen!

icon
Vertrieb kontaktieren