Trong phần trình bày "Có gì mới với đa nhiệm" của WWDC 2013, có một phần về Thông báo đẩy im lặng. Nó có vẻ thẳng về phía trước. Theo bản trình bày, nếu bạn gửi trọng tải APS chỉ với nội dung có sẵn được đặt thành 1, người dùng sẽ không được thông báo về thông báo.
// A. This doesn't work
{
aps: {
content-available: 1
}
}
Thử nghiệm của tôi cho thấy rằng điều này không hoạt động vì không nhận được đẩy. Nhưng nếu tôi bao gồm thuộc tính âm thanh nhưng loại trừ thuộc tính cảnh báo, nó hoạt động (mặc dù không im lặng nữa).
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
Tuy nhiên, nếu tôi thay đổi thuộc tính âm thanh để phát âm thanh im lặng, tôi có thể bắt chước tiếng đẩy im lặng.
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
Có ai biết không:
- Nếu đây là một lỗi?
- Và nếu giả định rằng B hoặc C đang được coi là Thông báo từ xa (chứ không phải lỗi với Silent Push, nơi bạn cần thuộc tính âm thanh) có đúng không? Nếu vậy, điều này có nghĩa là nó không bị giới hạn tỷ lệ như Silent Pushes ... mà Apple có thể sẽ sửa chữa. Vì vậy, tôi có lẽ không nên dựa vào nó.
- Giới hạn tốc độ là bao nhiêu (N đẩy mỗi X giây, v.v.)?
Cảm ơn trước.
Chỉnh sửa với nhiều thông tin hơn
Đối với A, trạng thái của ứng dụng không quan trọng. Thông báo không bao giờ nhận được.
Có vẻ như B và C chỉ hoạt động nếu bạn đặt các thuộc tính và giá trị trong dấu ngoặc kép, như bên dưới.
{"aps":{"content-available": 1, "sound":"silent.wav"}}
Và thông báo đến trong ứng dụng: didReceiveRemoteNotification: fetchCompletionHandler: bất kể trạng thái.