Để nhận các thông báo đơn giản về sau, mỗi ứng dụng khách cần triển khai
trên
firebase::messaging::Listener
API.
Khởi chạy FCM
Bạn phải khởi chạy mã thông báo đăng ký hoặc nhận thông báo trước khi có thể dùng FCM.
Để khởi chạy FCM, hãy gọi
::firebase::messaging::Initialize
và cung cấp cùng với thông tin
::firebase::App
cũng như việc triển khai
::firebase::messaging::Listener
.
MyListener my_listener_implementation; ::firebase::messaging::Initialize(app, &my_listener_implementation);
Truy cập vào mã thông báo đăng ký
Khi khởi động ứng dụng lần đầu tiên, SDK FCM sẽ tạo một đăng ký mã thông báo cho phiên bản ứng dụng khách. Nếu bạn muốn nhắm đến một thiết bị, hoặc tạo nhóm thiết bị cho FCM, bạn cần phải truy cập vào mã thông báo này.
Bạn có thể truy cập vào giá trị của mã thông báo thông qua
::firebase::messaging::Listener::OnTokenReceived
hàm ảo.
void OnTokenReceived(const char* token) { LogMessage("The registration token is `%s`", token); // TODO: If necessary send token to application server. }
Nhận và xử lý tin nhắn
Để nhận thông báo, lớp Trình nghe của bạn phải triển khai
OnMessage
hàm ảo.
Ghi đè OnMessage
Bằng cách ghi đè phương thức
::firebase::messaging::Listener::OnMessage
,
bạn có thể thực hiện hành động dựa trên tin nhắn đã nhận và xem dữ liệu tin nhắn:
void OnMessage(const ::firebase::messaging::Message& message) { LogMessage(TAG, "From: %s", message.from.c_str()); LogMessage(TAG, "Message ID: %s", message.message_id.c_str()); }
Tin nhắn có thể đại diện cho các loại dữ liệu đến khác nhau. Thông thường,
được gửi đến ứng dụng sau khi được nhà phát triển khởi tạo. Tin nhắn
cũng được gửi đến ứng dụng của bạn để biểu thị sự kiện đã gửi tin nhắn, lỗi gửi tin nhắn
sự kiện và tin nhắn bị xoá. Bạn có thể tách riêng những sự kiện đặc biệt này
bằng cách kiểm tra trường Message::message_type
.
Đã xoá tin nhắn
Đã gửi đến ứng dụng của bạn khi máy chủ FCM xoá các tin nhắn đang chờ xử lý.
Message::message_type
sẽ "deleted_messages"
. Tin nhắn có thể bị xoá đến hạn
thành:
Đã lưu trữ quá nhiều thông báo trên máy chủ FCM.
Điều này có thể xảy ra khi máy chủ của một ứng dụng gửi một loạt các thuộc tính không thể thu gọn nhắn tin tới máy chủ FCM khi thiết bị không có kết nối mạng.
Thiết bị đã không kết nối trong một thời gian dài và máy chủ ứng dụng đã gần đây (trong vòng 4 tuần qua) đã gửi một thông báo cho ứng dụng về thiết bị.
Ứng dụng nên đồng bộ hoá hoàn toàn với ứng dụng máy chủ sau khi nhận được lệnh gọi này.