Zum Hauptinhalt springen
@capgo/capacitor-live-aktivitäten Benutzeroberfläche und System offene Quelle

Live Aktivitäten Plugin für Capacitor

Verwalten Sie iOS-Live-Aktivitäten und Dynamische Insel-Layouts mit JSON-getriebenen Vorlagen für Capacitor

Installieren

bun add @capgo/capacitor-live-activities bunx cap sync
npm, pnpm oder yarn
  • npm install @capgo/capacitor-live-activities
  • pnpm add @capgo/capacitor-live-activities
  • yarn add @capgo/capacitor-live-activities

Anleitung

Live Activities in Capacitor verwenden

Mit @capgo/capacitor-live-activities

Capacitor Live-Aktivitäten-Plugin-Interface für die Verwaltung von iOS-Live-Aktivitäten.

Installieren

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

iOS-Einrichtung

Die Installation und Synchronisierung des Plugins erzeugen keine native Live-Aktivitäten-Oberfläche. Bevor Sie __CAPGO_KEEP_0__ aufrufen startActivityKonfigurieren Sie ActivityKit in Xcode:

  1. Starten bunx cap open ios.
  2. Hinzufügen Widget-Erweiterung Ziel und aktivieren Live-Aktivität einschließen.
  3. Stellen Sie sicher, dass die App und die Widget-Erweiterung auf iOS 16.1 oder später ausgerichtet sind.
  4. Ensure the extension is embedded in the main app.
  5. Bleiben Sie an ActivityConfiguration registriert in der Erweiterung WidgetBundleeingetragen, einschließlich des Lock-Screens und aller Dynamic-Island-Anzeigen.
  6. Hinzufügen NSSupportsLiveActivities zur Hauptanwendung des Ziels Info.plist.
<key>NSSupportsLiveActivities</key>
<true/>

Die Zielanwendung alleine ist nicht ausreichend. Die native App oder Plugin muss die ActivityKit-APIs request, update und end aufrufen. Der Widget Extension muss SwiftUI code enthalten, die das gleiche Datenformat wie die von ActivityKit genutzten Daten dekodieren und rendern können. ActivityAttributes Beide die Hauptanwendung und der Widget Extension müssen die von ActivityKit verwendeten Modelle gemeinsam nutzen. Der Xcode-erstellte Live Activity Template rendernt die von diesem Plugin übergebenen JSON-Layouts nicht automatisch; der Extension muss auch ein kompatibles native Layout-Renderer enthalten.

Geteilte Bilder

Wenn Sie die Bildverwaltungsmethoden verwenden, fügen Sie die App-Gruppen Fähigkeit zur Hauptanwendung und Widget-Erweiterungsziel aktivieren. Aktivieren Sie die gleiche Gruppe auf beiden Zielen mit dem genauen Identifier, der vom Plugin erwartet wird.

group.<MAIN_APP_BUNDLE_ID>.liveactivities

Live Aktivitäts-Extensions dürfen den Netzwerkzugriff nicht nutzen. Laden Sie remote Bilder im Hauptapp herunter, speichern Sie sie in der gemeinsamen App-Gruppe mit saveImage, und verweisen Sie dann auf das gespeicherte Bild aus der Layout. Verpackte Assets müssen sich auch dem Ziel Widget Extension zugehörig sein.

Tiefe Links und Push-Updates

  • Registriere jede benutzerdefinierte URL-Scheme, die von behavior.widgetUrl or tapUrl oder verwendet wird, unter der Hauptanwendungs-Target-URL: Info &gt; URL-Typen Einstellungen.
  • Fügen Sie für servergetriebene Updates die Benachrichtigungen Kapazität und implementieren Sie die ActivityKit-Push-Token-Verwaltung mit APNs.
  • Hinzufügen NSSupportsLiveActivitiesFrequentUpdates Fügen Sie nur dann hinzu, wenn die App häufige ActivityKit-Push-Updates erfordert.

Die Aktivierung der Benachrichtigungen-Kapazität reicht allein nicht aus; servergetriebene Updates erfordern native Token-Verwaltung und einen APNs-Hintergrund.

ActivityKit beschränkt die kombinierte statische und dynamische Live-Aktivitätsdaten auf 4 KB. Die Dynamic Island ist nur auf unterstützten Gerätemodellen sichtbar; andere Geräte verwenden die Anzeige auf dem Bildschirm mit verriegelter Tür.

Was dieses Plugin enthüllt

  • areActivitiesSupported - Überprüfen Sie, ob Live-Aktivitäten auf diesem Gerät unterstützt werden. Erfordert iOS 16.1+ und Geräteunterstützung.
  • startActivity - Starten Sie eine neue Live-Aktivität mit der angegebenen Layout und Daten.
  • updateActivity - Ein bestehendes Live-Ereignis mit neuen Daten aktualisieren.
  • endActivity - Ein Live-Ereignis beenden.

Beispielanwendung

areActivitiesSupported

Überprüfen Sie, ob Live-Ereignisse 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 ein neues Live-Ereignis 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

Ein bestehendes Live-Ereignis mit neuen Daten aktualisieren.

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

Ein Live-Ereignis beenden.

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

Weitermachen von @capgo/capacitor-live-ereignisse

Wenn Sie Live Activities verwenden Mit @capgo/capacitor-live-aktivitäten um native Medien und Schnittstellen zu planen und zu verbinden, verwenden Sie @capgo/capacitor-live-aktivitäten für die Implementierungsdetails in @capgo/capacitor-live-aktivitäten, Getting Started für die Implementierungsdetails in Einführung, 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-navigations für die native Fähigkeit in @capgo/capacitor-native-Navigation.

FAQ

FAQ zur Live-Aktivitäten-Plugin

Wie installiere ich das Live Activities Plugin in einer Capacitor App?

Führen Sie &quot;bun add @capgo/capacitor-live-activities&quot; (oder &quot;npm install @capgo/capacitor-live-activities&quot;) aus, führen Sie dann &quot;bunx cap sync&quot; aus, damit die iOS- und Android-Projekte die native code aufnehmen. Importieren Sie es aus &quot;@capgo/capacitor-live-activities&quot; in Ihrer code App.

Funktioniert @capgo/capacitor-live-activities mit React, Vue und Angular?

Ja. Live Activities ist ein Capacitor-Paket, daher funktioniert es mit jedem Webframework, das innerhalb von Capacitor läuft, einschließlich Ionic, React, Vue, Angular, Svelte und plain JavaScript.

Welche Capacitor Version unterstützt @capgo/capacitor-live-activities?

Capgo-Plugins folgen der Capacitor-Version: verwenden Sie die Plugin-Major-Version, die Ihrer Capacitor-Major-Version entspricht (z.B. Plugin v8 mit Capacitor 8). Die Kompatibilitäts-Tabelle im GitHub README enthält die unterstützten Versionen.

Ist @capgo/capacitor-live-activities kostenlos und Open Source?

Ja. Die Quellcode von code ist öffentlich auf GitHub unter https://github.com/Cap-go/capacitor-live-activities/ verfügbar und das Paket kann kostenlos installiert werden von npm. Bug-Reports und Pull-Requests sind willkommen.

Kann ich code mit Live Activities aktualisieren, ohne eine App Store-Bewertung abzuwarten?

Die Installation oder das Upgrade des Plugins ändert die native code, daher benötigt es eine neue Store-Build. Danach können JavaScript-, HTML- und CSS-Änderungen, die den Plugin aufrufen, sofort mit Capgo-Live-Updates verschickt werden.

Live Activities ohne Wartezeit auf die App-Überprüfung bereitstellen

Einmal das Plugin in Ihrem Store-Build installiert, Capgo live Updates drücken Ihre JavaScript-, HTML- und CSS-Änderungen zu den Benutzern in Minuten.

Starten Sie mit Capgo