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:
- Ausführen
bunx cap open ios. - Hinzufügen Erweiterung für Widgets Ziel und aktivieren Live-Aktivität einschließen.
- Stellen Sie die Ziel- und Widget-Erweiterungsbereitstellung auf iOS 16.1 oder später ein.
- Stellen Sie sicher, dass die Erweiterung im Hauptanwendungsprogramm eingebettet ist.
- Behalten Sie ein
ActivityConfigurationregistriert in der ErweiterungWidgetBundle, mit Bildschirmschoner und allen dynamischen Inseln-Anzeigen. - Hinzufügen
NSSupportsLiveActivitieszum HauptanwendungszielInfo.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.widgetUrlFor server-driven updates, add thetapUrlcapability 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
NSSupportsLiveActivitiesFrequentUpdatesNur 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
- GitHub: https://github.com/Cap-go/capacitor-live-aktivitäten/
- Dokumentation: /docs/plugins/live-aktivitäten/
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.