Flutter, Firebase ios, pesan cloud tidak muncul saat aplikasi di latar belakang, hanya jika aplikasi di latar depan
Saya menggunakan ketergantungan flutter:
firebase_messaging: ^7.0.3
flutter_local_notifications: ^3.0.1+6
Saya mengirim pesan cloud firebase seperti ini:
{
"to": "/topics/demo_ios"
"notification" : {
"body" : "Hi there now now",
"title" : "Wow!",
"sound": "default"
},
"priority": "high"
"data": {
"title": "Hi there yes",
"body": "Wow",
}
}
Di iOS, notifikasi muncul saat aplikasi berada di latar depan, namun saat di latar belakang, aplikasi tidak muncul sama sekali. Saya mencoba membaca dan memperbaiki banyak hal, tetapi tetap tidak berhasil. Saya mengatur pengambilan latar belakang, pemberitahuan jarak jauh, dan pemrosesan latar belakang dari xcode, dan itu masih tidak berfungsi.
Saya menetapkan FirebaseAppDelegateProxyEnabled ke false di file plist, tetapi itu tidak membantu.
Saya meminta izin:
_messaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true, provisional: false)
);
_messaging.onIosSettingsRegistered.listen((event) {print('2124: ios Setting registered');});
Jawaban
pertama saya sarankan Anda untuk memperbarui plugin ke firebase_messaging: ^8.0.0-dev.8
, karena penanganan latar belakang iOS diaktifkan di sana. Lihat di sini perubahan ini:
- Dukungan pengendali latar belakang iOS.
Selanjutnya, cara mengintegrasikan semua itu ke proyek flutter Anda, harap ikuti dokumentasi resmi FlutterFire (ini adalah dokumentasi setelah plugin versi 8.xx-dev.
Terakhir, silakan baca lebih lanjut tentang APN, karena Apple menangani pesan-pesan itu secara berbeda dan Anda perlu memiliki APNSConfig
properti di dalam skrip Anda untuk mengirim pemberitahuan.
Jika Anda mengirim notifikasi melalui FirebaseAdmin, harap baca ini .
Jangan lupa, bahwa dalam hal ini, Anda perlu mengatur content_available=True
yang terkandung di dalam APNSConfig
properti, jadi pada dasarnya jika Anda menggunakan FirebaseAdmin Anda harus menyertakan juga properti yang mirip dengan yang ini:
apns=messaging.APNSConfig(
payload=messaging.APNSPayload(
aps=messaging.Aps(
alert='alert text',
sound='s',
content_available=True,
mutable_content=True,
category='c',
thread_id='t',
custom_data={
'id': 'xxx',
'type': 'xxx',
'title': 'Robb',
'content': 'Axxxx',
'image': 'xxx',
'deepLink': 'xxxx',
},
),
)
),
Saya juga mengalami masalah yang sama, coba unggah file IPA di testflight lalu berhasil semoga berhasil.
Nah, solusinya cukup sederhana, dan kesalahan atas nama saya.
Sebagai documnents pub.dev menyatakan:
Buat sertifikat yang diperlukan oleh Apple untuk menerima notifikasi push dengan mengikuti panduan ini di dokumen Firebase. Anda dapat melewati bagian berjudul "Buat Profil Penyediaan".
Ini tautannya: https://firebase.google.com/docs/cloud-messaging/ios/certs
Saya lupa melakukan langkah-langkah ini. Setelah melakukan ini, itu berhasil