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:
- Run
bunx cap open ios. - Tambahkan Tambahan Ekstensi Widget targetkan dan aktifkan Termasuk Aktivitas Langsung.
- Pastikan aplikasi dan ekstensi Widget Target pengembangan ditetapkan ke iOS 16.1 atau lebih baru.
- Pastikan ekstensi terintegrasi ke aplikasi utama.
- Tetapkan
ActivityConfigurationDengan terdaftar di ekstensi'sWidgetBundle, dengan Layar Kunci dan semua presentasi Pulau Dinamis. - Tambahkan
NSSupportsLiveActivitieske target aplikasi utamaInfo.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.widgetUrlatautapUrldi bawah target aplikasi utama Info > Tipe URL Pengaturan. - Untuk pembaruan yang dikendalikan server, tambahkan Pemberitahuan Push kemampuan dan implementasi pengelolaan token push ActivityKit dengan APNs.
- Add
NSSupportsLiveActivitiesFrequentUpdatesHanya 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
areActivitiesSupportedPeriksa apakah Aktivitas Langsung mendukung perangkat ini. Memerlukan iOS 16.1+ dan dukungan perangkat.startActivityMulai 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
- - GitHub: https://github.com/Cap-go/capacitor-aktivitas-langsung/
- - Dokumen: /docs/plugins/aktivitas-langsung/
- 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.