Saya membenturkan kepala. Saya menerapkan pemberitahuan push. Semuanya berfungsi dengan baik (push diterima, lencana diperbarui) tetapi di bawah iOS 13.3 aplikasi metode (_: didReceiveRemoteNotification: fetchCompletionHandler :) tidak dipanggil saat aplikasi berada di latar belakang. Jika aplikasi di latar depan atau menggunakan perangkat iOS 12 metode ini disebut. Saya mendaftar untuk pemberitahuan push dengan cara berikut:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
Payload diatur sebagai berikut
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
Saya mencoba menambahkan "Pemberitahuan jarak jauh" dan "Pemrosesan latar belakang" sebagai kemampuan aplikasi dalam semua variasi (hanya "Pemberitahuan jarak jauh" / "Pemrosesan latar belakang", tanpa kemampuan apa pun, yang memungkinkan keduanya) tanpa perubahan apa pun. Saya menetapkan delegasi untuk UNUserNotificationCenter tetapi sekali lagi tidak berhasil. Saya mengatur tajuk sesuai:
curl -v \
-H 'apns-priority: 4' \
-H 'apns-topic: xx.xxxxx.xxxx' \
-H 'apns-push-type: alert' \
-H 'Content-Type: application/json; charset=utf-8' \
-d '{"aps": {"badge": 10,"alert": "test", "content-available":1}}' \
--http2 \
--cert pushcert.pem \
https://api.sandbox.push.apple.com/3/device/1234567890
Dari dokumen itu menyatakan bahwa metode ini dipanggil bahkan ketika aplikasi di latar belakang:
Gunakan metode ini untuk memproses notifikasi jarak jauh yang masuk untuk aplikasi Anda. Berbeda dengan aplikasi: metode didReceiveRemoteNotification:, yang dipanggil hanya ketika aplikasi Anda berjalan di latar depan, sistem memanggil metode ini ketika aplikasi Anda berjalan di latar depan atau latar belakang.
Apa yang saya lewatkan di sini untuk iOS 13?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
metode?