Berapa panjang maksimum teks peringatan dari pemberitahuan push iOS?
The dokumentasi menyatakan bahwa muatan pemberitahuan harus berada di bawah 256 byte secara total , tapi pasti harus ada batas karakter tertentu untuk teks peringatan.
Berapa panjang maksimum teks peringatan dari pemberitahuan push iOS?
The dokumentasi menyatakan bahwa muatan pemberitahuan harus berada di bawah 256 byte secara total , tapi pasti harus ada batas karakter tertentu untuk teks peringatan.
Jawaban:
Batas nyata teks peringatan tidak didokumentasikan di mana pun. Satu-satunya dokumentasi mengatakan adalah:
Di iOS 8 dan yang lebih baru, ukuran maksimum yang diizinkan untuk muatan notifikasi adalah 2 kilobyte; Layanan Pemberitahuan Push Apple menolak pemberitahuan yang melebihi batas ini. (Sebelum iOS 8 dan di OS X, ukuran muatan maksimum adalah 256 byte.)
Inilah yang dapat saya temukan melakukan beberapa percobaan.
Sama seperti pengingat di sini adalah catatan yang sangat bagus dari dokumentasi resmi:
Jika perlu, iOS memotong pesan Anda sehingga cocok dengan setiap gaya pengiriman pemberitahuan; untuk hasil terbaik, Anda tidak boleh memotong pesan Anda.
Itu harus 236 byte. Tidak ada batasan ukuran teks peringatan sejauh yang saya tahu, tetapi hanya ukuran muatan total. Jadi mempertimbangkan jika payloadnya minimal dan hanya berisi informasi peringatan, seharusnya terlihat seperti:
{"aps":{"alert":""}}
Itu membutuhkan 20 karakter (20 byte), meninggalkan 236 byte untuk dimasukkan ke dalam string peringatan. Dengan ASCII yang terdiri dari 236 karakter, dan bisa lebih kecil dengan UTF8 dan UTF16.
Batas pemberitahuan format yang ditingkatkan didokumentasikan di sini .
Secara eksplisit menyatakan:
Payload tidak boleh melebihi 256 byte dan tidak boleh diakhiri null.
Ascandroli mengklaim di atas bahwa mereka dapat mengirim pesan dengan 1400 karakter. Pengujian saya sendiri dengan format pemberitahuan baru menunjukkan bahwa pesan hanya 1 byte di atas batas 256 byte ditolak. Mengingat bahwa dokumen sangat eksplisit tentang hal ini, saya sarankan lebih aman untuk menggunakan 256 terlepas dari apa yang dapat Anda capai secara eksperimental karena tidak ada jaminan Apple tidak akan mengubahnya ke 256 di masa mendatang.
Adapun teks peringatan itu sendiri, jika Anda bisa memasangnya dalam 256 ukuran payload total maka akan ditampilkan oleh iOS. Mereka memotong pesan yang muncul di bilah status, tetapi jika Anda membuka pusat notifikasi, seluruh pesan ada di sana. Bahkan membuat karakter baris baru \n
.
EDIT:
Memperbarui jawabannya dengan informasi terbaru
Ukuran maksimum yang diizinkan untuk muatan notifikasi tergantung pada API penyedia yang Anda gunakan.
Saat menggunakan antarmuka biner lawas, ukuran payload maksimum adalah 2KB (2048 bytes).
Saat menggunakan API penyedia HTTP / 2, ukuran muatan maksimum adalah 4KB (4096 byte). Untuk pemberitahuan Voice over Internet Protocol (VoIP), ukuran maksimum adalah 5KB (5120 byte)
JAWABAN TUA: Menurut dokumen Apple, payload untuk iOS 8 adalah 2 kilobyte (2048 byte) dan 256 byte untuk iOS 7 dan sebelumnya. (menghapus tautan karena itu adalah dokumen lama dan rusak sekarang)
Jadi, jika Anda hanya mengirim teks, Anda memiliki 2028 (iOS 8+) atau 236 (iOS 7-) karakter yang tersedia.
Muatan Pemberitahuan
Setiap notifikasi jarak jauh termasuk muatan. Payload berisi informasi tentang bagaimana sistem harus memperingatkan pengguna serta data khusus yang Anda berikan. Di iOS 8 dan yang lebih baru, ukuran maksimum yang diizinkan untuk muatan notifikasi adalah 2 kilobyte; Layanan Pemberitahuan Push Apple menolak pemberitahuan yang melebihi batas ini. (Sebelum iOS 8 dan di OS X, ukuran muatan maksimum adalah 256 byte.)
Tapi saya sudah menguji dan Anda dapat mengirim 2 kilobyte ke perangkat iOS 7 juga, bahkan dalam konfigurasi produksi
Untuk pemberitahuan jarak jauh biasa, ukuran maksimum adalah 4KB (4096 byte) https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html
### iOS batas ukurannya adalah 256 byte, tetapi sejak diperkenalkannya iOS 8 telah berubah menjadi 2kb!
https://forums.aws.amazon.com/ann.jspa?annID=2626
Dengan iOS 8, Apple memperkenalkan fitur-fitur baru yang memungkinkan beberapa kasus penggunaan baru yang kaya untuk pemberitahuan push seluler - pemberitahuan push interaktif, widget pihak ketiga, dan muatan yang lebih besar (2 KB). Hari ini, kami dengan senang hati mengumumkan dukungan untuk kapabilitas push seluler baru yang diumumkan dengan iOS 8. Kami menerbitkan Aplikasi Sampel iOS 8 baru yang menunjukkan bagaimana fitur-fitur baru ini dapat diimplementasikan dengan SNS, dan juga telah mengimplementasikan dukungan untuk muatan 2KB yang lebih besar.
Menurut WWDC 713_hd_whats_new_in_ios_notifications. Batas ukuran sebelumnya 256 byte untuk payload push sekarang telah ditingkatkan menjadi 2 kilobyte untuk iOS 8.
Sumber: http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0
Apple push akan menolak string karena berbagai alasan. Saya menguji berbagai skenario untuk pengiriman push, dan ini adalah perbaikan pekerjaan saya (dengan python):
# Apple rejects push payloads > 256 bytes (truncate msg to < 120 bytes to be safe)
if len(push_str) > 120:
push_str = push_str[0:120-3] + '...'
# Apple push rejects all quotes, remove them
import re
push_str = re.sub("[\"']", '', push_str)
# Apple push needs to newlines escaped
import MySQLdb
push_str = MySQLdb.escape_string(push_str)
# send it
import APNSWrapper
wrapper = APNSWrapper.APNSNotificationWrapper(certificate=...)
message = APNSWrapper.APNSNotification()
message.token(...)
message.badge(1)
message.alert(push_str)
message.sound("default")
wrapper.append(message)
wrapper.notify()
Menurut dokumen Apple yang diperbarui (periksa tanggal jawab saya):
"... Saat menggunakan API penyedia HTTP / 2, ukuran muatan maksimum adalah 4096 byte. Dengan menggunakan antarmuka biner lama, ukuran muatan maksimum adalah 2048 byte. Layanan Pemberitahuan Dorong Apple (APNs) menolak segala pemberitahuan yang melebihi ukuran maksimum."
Apple Diperbarui Doc:
Setiap notifikasi jarak jauh termasuk muatan. Payload berisi informasi tentang bagaimana sistem harus memperingatkan pengguna serta data khusus yang Anda berikan. Ukuran maksimum yang diizinkan untuk muatan notifikasi tergantung pada API penyedia yang Anda gunakan. Saat menggunakan API penyedia HTTP / 2, ukuran payload maksimum adalah 4096 byte . Menggunakan antarmuka biner lama, ukuran muatan maksimum adalah 2048 byte. Layanan Pemberitahuan Push Apple (APNs) menolak setiap pemberitahuan yang melebihi ukuran maksimum.