5

Tôi gặp sự cố với thông báo im lặng trên iOS.Thông báo đẩy im lặng Firebase FCM cho iOS

Khi ứng dụng của tôi ở chế độ nền, tôi không nhận được thông báo im lặng được gửi bởi FCM. Nhưng nếu tôi cố gắng gửi trực tiếp đến APNS, thông báo đã được nhận thành công.

Đây là JSON gửi đến FCM:

{ 
"to" : "<token>", 
"priority": "high", 
"content_available": true, 
"data" : { 
    "<key>" : "<string>", 
    "<key2>" : "<string>" 
} 

}

Đây là JSON gửi trực tiếp đến APNS:

{ 
    "aps": { 
    "content-available": 1 
    }, 
    "<key>": "<string>", 
    "<key>": "<string>" 
} 

Tôi đã cố gắng để loại bỏ các "ưu tiên" vì tôi thấy ai đó nói rằng tôi không nên đặt mức độ ưu tiên nếu "content_available" đã được đặt. Nó không hoạt động.

  1. Tôi có "Thông báo đẩy" được bật trong XCode> Khả năng.
  2. Tôi đã chọn "Thông báo từ xa" trong Chế độ nền trong XCode> Khả năng.
  3. Thông báo FCM đang hoạt động tốt khi ứng dụng ở nền trước và đôi khi ứng dụng ở chế độ nền.

Trả lời

2

Tôi đã tìm thấy giải pháp thay thế. Tôi đặt một giá trị rỗng cho "âm thanh" trong trường "thông báo" và các thông báo im lặng được gửi ngay cả khi ứng dụng ở chế độ nền.

{ 
    "to" : "...", 
    "priority": "high", 
    "notification": { 
     "sound": "" 
    }, 
    "data" : { 
     .... 
    } 
} 

linh cảm của tôi là Apple không cho phép thông báo im lặng với một ưu tiên 'cao' và bằng cách nào đó "thông báo": { "âm thanh": ""} thủ đoạn các APNS rằng thông báo này không phải là một im lặng.

+1

Ngay sau khi bạn đặt đối tượng thông báo, nó sẽ trở thành một thông báo đẩy thông thường. Nó không phải là một thông báo đẩy im lặng tại al. –

+0

phải làm gì để gửi thông báo im lặng qua bảng điều khiển tin nhắn FCM? – Moxarth

1

Vui lòng thực hiện theo documentation for server side và thiết lập json như được giải thích trong tài liệu. Tôi đã phải đối mặt với vấn đề tương tự trước đó và giải quyết vấn đề đi doc này.

{ 
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", 
    "priority" : "high", 
    "notification" : { 
    "body" : "This week's edition is now available.", 
    "title" : "NewsMagazine.com", 
    "icon" : "new" 
    }, 
    "data" : { 
    "volume" : "3.21.15", 
    "contents" : "http://www.news-magazine.com/world-week/21659772" 
    } 
} 

bạn đã bỏ lỡ khóa thông báo. được apns sử dụng để nhận thông báo trên nền.

+3

Nhưng tôi không muốn người dùng nhận được thông báo trong Notification Center. Tôi chỉ muốn một thông báo im lặng sẽ thực thi một số mã trong "didReceiveRemoteNotification". Đó là những gì "thông báo im lặng" có nghĩa là. – vladiulianbogdan

3

Di "thông báo" cặp giá trị key và thêm "content_available": đúng

Nó sẽ giống như thế này

{ 
    "to" : "...", 
    "priority": "high", 
    "content_available": true, 
    "data" : { 
     .... 
    } 
} 

này nên làm cho nó một APNS im lặng và bạn cần phải xử lý với phương thức ủy nhiệm APNS tương ứng.

Bạn sẽ cần phải xử lý này thông qua các đại biểu Tham khảo tài liệu hướng dẫn căn cứ hỏa lực này để biết chi tiết: https://firebase.google.com/docs/cloud-messaging/concept-options

Các vấn đề liên quan