Lompat ke Konten Utama
@capgo/capacitor-aktivitas-hidup UI & Sistem Terbuka Sumber

Aktivitas Hidup Plugin Capacitor

Pengaturan Capacitor untuk Aktivitas Hidup iOS dan Layout Island Dinamis

Install

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

Panduan

Bagaimana menggunakan Aktivitas Langsung di Capacitor

Menggunakan @capgo/capacitor-aktivitas-langganan

Interface Plugin Aktivitas Langsung Capacitor untuk mengelola Aktivitas Langsung iOS.

Instal

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

Pengaturan iOS

Menginstal dan sinkronisasi plugin tidak menciptakan antarmuka Aktivitas Langsung native. Sebelum memanggil startActivity, atur ActivityKit di Xcode:

  1. Run bunx cap open ios.
  2. Tambahkan Tambahan Ekstensi Widget targetkan dan aktifkan Termasuk Aktivitas Langsung.
  3. Pastikan aplikasi dan ekstensi Widget Target pengembangan ditetapkan ke iOS 16.1 atau lebih baru.
  4. Pastikan ekstensi terintegrasi ke aplikasi utama.
  5. Tetapkan ActivityConfiguration Dengan terdaftar di ekstensi's WidgetBundle, dengan Layar Kunci dan semua presentasi Pulau Dinamis.
  6. Tambahkan NSSupportsLiveActivities ke target aplikasi utama Info.plist.
<key>NSSupportsLiveActivities</key>
<true/>

Menambahkan target sendiri tidak cukup. Aplikasi native atau plugin harus memanggil API ActivityKit request, update, dan end. Ekstensi Widget harus berisi SwiftUI code yang dapat mendekode dan menampilkan konten yang sama. ActivityAttributes Dan konten status yang digunakan oleh panggilan tersebut. Termasuk model ActivityKit bersamaan di target aplikasi utama dan Ekstensi Widget. Template Live Activity yang dihasilkan Xcode tidak secara otomatis menampilkan tata letak JSON yang dikirim ke plugin ini; ekstensi juga memerlukan renderer tata letak native yang kompatibel.

Gambar Bersamaan

Ketika menggunakan metode pengelolaan gambar, tambahkan Grup Aplikasi ke target aplikasi utama dan Ekstensi Widget. Aktifkan grup yang sama di kedua target menggunakan identifier yang tepat yang diharapkan oleh plugin:

group.<MAIN_APP_BUNDLE_ID>.liveactivities

Ekstensi Aktivitas Live tidak dapat mengakses jaringan. Unduh gambar remote di aplikasi utama, simpan mereka ke Grup Aplikasi bersamaan dengan saveImage, dan kemudian referensi gambar yang disimpan dari tata letak. Aset yang dibundel juga harus dimiliki oleh target Ekstensi Widget.

Tautan dalam dan Perbarui Push

  • Daftarkan setiap skema URL khusus yang digunakan oleh behavior.widgetUrl atau tapUrl di bawah target aplikasi utama Info &gt; Tipe URL Pengaturan.
  • Untuk pembaruan yang dikendalikan server, tambahkan Pemberitahuan Push kemampuan dan implementasi pengelolaan token push ActivityKit dengan APNs.
  • Add NSSupportsLiveActivitiesFrequentUpdates Hanya ketika aplikasi memerlukan pembaruan push Aktivitas Kit secara teratur.

Mengaktifkan kemampuan Notifikasi Push saja tidak cukup; pembaruan yang dikendalikan oleh server memerlukan pengelolaan token asli dan backend APNs.

Kemampuan Pemberitahuan Push sendiri tidak cukup; pembaruan yang dikendalikan server memerlukan pengelolaan token asli dan backend APNs.

Apa yang Dapat Diketahui oleh Plugin Ini

  • areActivitiesSupported Periksa apakah Aktivitas Langsung mendukung perangkat ini. Memerlukan iOS 16.1+ dan dukungan perangkat.
  • startActivity Mulai Aktivitas Langsung Baru dengan tata letak dan data yang ditentukan.
  • updateActivity - Perbarui Aktivitas Langsung yang ada dengan data baru.
  • endActivity - Akhiri Aktivitas Langsung.

- Contoh Penggunaan

areActivitiesSupported

- Periksa apakah Aktivitas Langsung didukung pada perangkat ini. Memerlukan iOS 16.1+ dan dukungan perangkat.

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

- Mulai Aktivitas Langsung baru dengan tata letak yang ditentukan dan data.

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

- Perbarui Aktivitas Langsung yang ada dengan data baru.

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

- Akhiri Aktivitas Langsung.

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
});

- Referensi Lengkap

- Lanjutkan dari Menggunakan @capgo/capacitor-aktivitas-langsung

Jika Anda menggunakan Menggunakan @capgo/capacitor-aktivitas-aktif untuk merencanakan perilaku media dan antarmuka asli, hubungkannya dengan @capgo/capacitor-aktivitas-aktif untuk detail implementasi di @capgo/capacitor-aktivitas-aktif, Mulai Menggunakan untuk detail implementasi di Getting Started, Menggunakan @capgo/capacitor-pemain-video untuk kemampuan asli di Menggunakan @capgo/capacitor-pemain-video, @capgo/capacitor-pemain-video untuk detail implementasi di @capgo/capacitor-pemain-video, dan Menggunakan @capgo/capacitor-navigasi-asli untuk kemampuan asli di Menggunakan @capgo/capacitor-native-navigation.

FAQ

FAQ Plugin Aktivitas Langsung

Bagaimana cara saya menginstal plugin Aktivitas Langsung di aplikasi Capacitor?

Jalankan &quot;bun add @capgo/capacitor-live-activities&quot; (atau &quot;npm install @capgo/capacitor-live-activities&quot;), kemudian jalankan &quot;bunx cap sync&quot; agar proyek iOS dan Android dapat menangkap native code. Import dari &quot;@capgo/capacitor-live-activities&quot; di aplikasi code.

Apakah @capgo/capacitor-live-activities berfungsi dengan React, Vue, dan Angular?

Ya. Aktivitas Langsung adalah paket Capacitor, sehingga berfungsi dengan framework web apa pun yang berjalan di dalam Capacitor, termasuk Ionic, React, Vue, Angular, Svelte, dan JavaScript biasa.

Versi Capacitor mana yang didukung oleh @capgo/capacitor-live-activities?

Capgo plugin mengikuti versi utama Capacitor: gunakan versi plugin utama yang sesuai dengan versi utama Capacitor (misalnya plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub menyebutkan versi yang dipertahankan.

Apakah @capgo/capacitor-live-activities gratis dan terbuka sumber?

Ya. Sumber code publik di GitHub di https://github.com/Cap-go/capacitor-live-activities/ dan paket ini gratis untuk diinstal dari npm. Laporan bug dan permintaan pull selalu welcome.

Dapatkah saya memperbarui code yang menggunakan Aktivitas Langsung tanpa tinjauan App Store?

Menginstal atau mengupgrade plugin mengubah native code, sehingga memerlukan build toko baru. Setelah itu, perubahan JavaScript, HTML, dan CSS yang memanggil plugin dapat berlayar langsung dengan Capgo live updates.

Kirim perubahan Aktivitas Hidup tanpa menunggu tinjauan aplikasi

Setelah plugin masuk ke dalam toko Anda, Capgo pembaruan hidup mempushkan perubahan JavaScript, HTML, dan CSS Anda ke pengguna dalam menit.

Mulai dengan Capgo