@fyasar,
Vì vậy, đề nghị của bạn là để lưu trữ các thiết bị thẻ chống lại id thiết bị (hoặc một số key). Khi nhận được phản hồi cho mã thông báo thiết bị, hãy xóa hàng mã thông báo thiết bị khỏi DB, phải không? Nếu đã hiểu đúng, điều đó sẽ không hoạt động trong kịch bản là ứng dụng cài đặt người dùng, gỡ cài đặt ứng dụng và sau đó cài đặt lại tất cả trong một thời gian ngắn và dịch vụ phản hồi chỉ được truy vấn sau khi tất cả điều này xảy ra.Trong trường hợp này, nếu không xem xét dấu thời gian trong phản hồi, mã thông báo thiết bị sẽ bị xóa không chính xác khi người dùng đã cài đặt lại ứng dụng và đăng ký lại để thông báo đẩy.
Câu hỏi của tôi là điều này, như được đề xuất trong tài liệu của apple và nhiều blog, khi đăng ký, khi mã thông báo thiết bị được duy trì, dấu thời gian phải được duy trì cùng với nó. Thời gian ISO của múi giờ nào nên được duy trì hoặc múi giờ trên dịch vụ phản hồi nào trả về dấu thời gian.
Phản hồi APNS trả về mã thông báo thiết bị nếu gửi thông báo không thành công. Điều này không có nghĩa là ứng dụng đã được gỡ cài đặt khỏi thiết bị, nó có thể chỉ là người dùng không có kết nối wifi liên tục tại thời điểm này. – Mladen
Đó không phải là những gì tài liệu nói. "Nếu nhà cung cấp cố gắng gửi thông báo đẩy tới ứng dụng, nhưng ứng dụng không còn tồn tại trên thiết bị nữa, thiết bị sẽ báo cáo thực tế đó với Dịch vụ thông báo của Apple Push. Tình huống này thường xảy ra khi người dùng đã gỡ cài đặt ứng dụng. một thiết bị báo cáo các lần gửi không thành công cho một ứng dụng, APN cần một số cách để thông báo cho nhà cung cấp để nó có thể không gửi thông báo tới thiết bị đó. " – Lee
@Mladen. Sai. Nếu thiết bị không có kết nối wifi hoặc kết nối 3/4G thì Apple sẽ gửi Thông báo đẩy sau khi có kết nối. – midspace