Zum Hauptinhalt springen
Zurück zu Plugins
@capgo/capacitor-live-aktivitäten
Tutorial
@capgo/capacitor-live-aktivitäten

Live-Aktivitäten

Verwalte iOS-Live-Aktivitäten und Dynamic Island-Anordnungen von Capacitor mit JSON-getriebenen Vorlagen

Richtlinie

Tutorial zu Live-Aktivitäten

Verwendung von @capgo/capacitor-live-aktivitäten

Capacitor Live-Aktivitäten-Plugin-Schnittstelle zur Verwaltung von iOS-Live-Aktivitäten

Installieren

bun add @capgo/capacitor-live-activities
bunx cap sync

iOS-Einrichtung

Die Installation und Synchronisierung des Plugins erzeugt keine native Live-Aktivitäts-Oberfläche. Bevor Sie eine Anfrage stellen, startActivityKonfigurieren Sie ActivityKit in Xcode:

  1. Ausführen bunx cap open ios.
  2. Hinzufügen Erweiterung für Widgets Ziel und aktivieren Live-Aktivität einschließen.
  3. Stellen Sie die Ziel- und Widget-Erweiterungsbereitstellung auf iOS 16.1 oder später ein.
  4. Stellen Sie sicher, dass die Erweiterung im Hauptanwendungsprogramm eingebettet ist.
  5. Behalten Sie ein ActivityConfiguration registriert in der Erweiterung WidgetBundle, mit Bildschirmschoner und allen dynamischen Inseln-Anzeigen.
  6. Hinzufügen NSSupportsLiveActivities zum Hauptanwendungsziel Info.plist.
<key>NSSupportsLiveActivities</key>
<true/>

Hinzufügen des Ziels allein ist nicht ausreichend. Die native App oder Plugin muss die ActivityKit-APIs request, update und end aufrufen. Die Widget-Erweiterung muss SwiftUI code enthalten, die die gleichen JSON-Layouts dekodieren und rendern können. Die gemeinsamen ActivityKit-Modelle müssen in beiden Hauptanwendungs- und Widget-Erweiterungszieldarstellungen enthalten sein. Das von Xcode generierte Live-Aktivitäts-Template renderiert die JSON-Layouts, die diesem Plugin übergeben werden, nicht automatisch; Die Erweiterung benötigt auch einen kompatiblen nativen Layout-Renderer. ActivityAttributes Gemeinsame Bilder

registered in the extension's

When Sie die Bildverwaltungsmethoden verwenden, fügen Sie der Hauptanwendung und der Widget-Erweiterungsziel die Fähigkeit hinzu. Aktivieren Sie das gleiche Gruppenziel auf beiden Zielen mit dem genauen Identifier, der vom Plugin erwartet wird: App-Gruppen Live-Aktivitäts-Erweiterungen können nicht auf das Netzwerk zugreifen. Laden Sie remote Bilder in der Hauptanwendung herunter, speichern Sie sie in der gemeinsamen App-Gruppe mit __CAPGO_KEEP_0__ und referenzieren Sie dann die gespeicherte Bilddatei aus der Layout.

group.<MAIN_APP_BUNDLE_ID>.liveactivities

Tiefenlinks und Push-Updates saveImageRegistrieren Sie jede benutzerdefinierte URL-Scheme, das von __CAPGO_KEEP_1__ oder __CAPGO_KEEP_2__ verwendet wird, unter dem Hauptanwendungsziel in den Einstellungen unter "Info > URL-Typen".

Für servergetriebene Updates fügen Sie die

  • settings. behavior.widgetUrl For server-driven updates, add the tapUrl capability to the main app target. App Groups capability to the main app and Widget Extension targets.
  • capability to the main app and Widget Extension targets. Benachrichtigungen Fähigkeit und Implementierung der Aktivitätskit-Push-Token-Verwaltung mit APNs.
  • Hinzufügen NSSupportsLiveActivitiesFrequentUpdates Nur dann, wenn die Anwendung regelmäööse Aktivitätskit-Push-Updates erfordert.

Die Aktivierung der Benachrichtigungs-Fähigkeit allein reicht nicht aus; servergetriebene Updates erfordern eine native Token-Verwaltung und einen APNs-Hintergrund.

ActivityKit beschränkt die kombinierte statische und dynamische Live-Aktivitäts-Daten auf 4 KB. Der Dynamic Island ist nur auf unterstützten Gerätemodellen sichtbar; andere Geräte verwenden die Anzeige auf dem Bildschirm des Schlosses.

Was diese Plugin-Exposition ausgibt

  • areActivitiesSupported - Prükt, ob Live-Aktivitäten auf diesem Gerät unterstützt werden. Erfordert iOS 16.1+ und Geräteunterstützung.
  • startActivity - Startet eine neue Live-Aktivität mit der angegebenen Layout- und Datenkonfiguration.
  • updateActivity - Aktualisiert eine bestehende Live-Aktivität mit neuen Daten.
  • endActivity - Beendet eine Live-Aktivität.

Beispielhafte Verwendung

areActivitiesSupported

Überprüfen Sie, ob Live-Aktivitäten auf diesem Gerät unterstützt werden. Erfordert iOS 16.1+ und Geräteunterstützung.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

const { supported, reason } = await CapgoLiveActivities.areActivitiesSupported();
if (supported) {
  console.log('Live Activities are supported!');
} else {
  console.log('Not supported:', reason);
}

startActivity

Starten Sie eine neue Live-Aktivität mit der angegebenen Layout und Daten.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

const { activityId } = await CapgoLiveActivities.startActivity({
  layout: {
    type: 'container',
    direction: 'horizontal',
    children: [
      { type: 'text', content: 'Order #{{orderNumber}}', fontSize: 16, fontWeight: 'bold' },
      { type: 'text', content: '{{status}}', fontSize: 14, color: '#666666' }
    ]
  },
  dynamicIslandLayout: {
    expanded: {
      leading: { type: 'image', source: 'sfSymbol', value: 'box.truck' },
      trailing: { type: 'text', content: '{{eta}}' },
      center: { type: 'text', content: '{{status}}' },
      bottom: { type: 'progress', value: 'progress' }
    },
    compactLeading: { type: 'image', source: 'sfSymbol', value: 'box.truck' },
    compactTrailing: { type: 'text', content: '{{eta}}' },
    minimal: { type: 'image', source: 'sfSymbol', value: 'box.truck' }
  },
  data: {
    orderNumber: '12345',
    status: 'On the way',
    eta: '10 min',
    progress: 0.6
  }
});
console.log('Started activity:', activityId);

updateActivity

Aktualisieren Sie eine bestehende Live-Aktivität mit neuen Daten.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

await CapgoLiveActivities.updateActivity({
  activityId: 'abc123',
  data: {
    status: 'Arrived!',
    eta: 'Now',
    progress: 1.0
  },
  alertConfiguration: {
    title: 'Delivery Update',
    body: 'Your order has arrived!'
  }
});

endActivity

Beenden Sie eine Live-Aktivität.

import { CapgoLiveActivities } from '@capgo/capacitor-live-activities';

await CapgoLiveActivities.endActivity({
  activityId: 'abc123',
  data: { status: 'Delivered' },
  dismissalPolicy: 'after',
  dismissAfter: Date.now() + 3600000 // 1 hour from now
});

Vollständige Referenz

Fortsetzen Sie von Using @capgo/capacitor-live-aktivitäten

Wenn Sie Mit @capgo/capacitor-live-aktivitäten native Medien und Schnittstellenverhalten planen, verbinden Sie es mit @capgo/capacitor-live-aktivitäten für die Implementierungsdetails in @capgo/capacitor-live-aktivitäten, Einstieg für die Implementierungsdetails in Einstieg, Mit @capgo/capacitor-video-player für die native Fähigkeit in Mit @capgo/capacitor-video-player, @capgo/capacitor-video-player für die Implementierungsdetails in @capgo/capacitor-video-player und Mit @capgo/capacitor-native-navigation für die native Fähigkeit in Mit @capgo/capacitor-native-navigation.