Bir iOS push bildiriminin uyarı metninin maksimum uzunluğu nedir?
Dokümantasyon o devletler bildirim yükü vardır toplamda 256 bayt altında olmasını , ama kesinlikle uyarı metni için belirli bir karakter limiti olmalıdır.
Bir iOS push bildiriminin uyarı metninin maksimum uzunluğu nedir?
Dokümantasyon o devletler bildirim yükü vardır toplamda 256 bayt altında olmasını , ama kesinlikle uyarı metni için belirli bir karakter limiti olmalıdır.
Yanıtlar:
Uyarı metninin gerçek sınırları hiçbir yerde belgelenmemiştir. Belgelerin söylediği tek şey :
İOS 8 ve sonraki sürümlerde, bildirim yükü için izin verilen maksimum boyut 2 kilobayttır; Apple Anında Bildirim Hizmeti bu sınırı aşan bildirimleri reddeder. (İOS 8'den önce ve OS X'te maksimum yük boyutu 256 bayttır.)
Bazı deneyler yaparken bulabildim.
Burada hatırlatmak gerekirse, resmi belgelerden çok iyi bir not var:
Gerekirse iOS, iletinizi her bildirim teslim stiline sığacak şekilde keser; en iyi sonuçlar için mesajınızı kısaltmamalısınız.
236 bayt olmalıdır. Bildiğim kadarıyla uyarı metninin boyutu konusunda herhangi bir kısıtlama yoktur, sadece toplam yük boyutu. Dolayısıyla, yükün minimum olup olmadığını ve yalnızca uyarı bilgilerini içerip içermediğini göz önüne alarak, şöyle görünmelidir:
{"aps":{"alert":""}}
Bu, 20 karakter (20 bayt) alır ve uyarı dizesinin içine 236 bayt bırakır. ASCII ile bu 236 karakter ve UTF8 ve UTF16 ile daha az olabilir.
Geliştirilmiş biçim bildirimlerinin sınırı burada belgelenmiştir .
Açıkça şunu belirtmektedir:
Yük 256 baytı aşmamalıdır ve boş değerli sonlandırılmamalıdır.
ascandroli yukarıda 1400 karakterle mesaj gönderebildiklerini iddia ediyor . Yeni bildirim formatı ile yaptığım kendi testlerim 256 bayt sınırını aşan bir mesajın reddedildiğini gösterdi. Dokümanların bu noktada çok açık olduğu göz önüne alındığında, Apple'ın gelecekte 256 olarak değiştirmeyeceğine dair bir garanti olmadığı için deneysel olarak ne başarabileceğinizden bağımsız olarak 256 kullanmanın daha güvenli olduğunu düşünüyorum.
Uyarı metninin kendisine gelince, toplam 256 yük boyutuna sığabilirseniz, iOS tarafından görüntülenecektir. Durum çubuğunda görünen iletiyi kısaltırlar, ancak bildirim merkezini açarsanız, iletinin tamamı oradadır. Hatta yeni satır karakterleri oluşturur \n
.
DÜZENLE:
Cevabı en son bilgilerle güncelleme
Bildirim yükü için izin verilen maksimum boyut, kullandığınız sağlayıcı API'sine bağlıdır.
Eski ikili arabirimi kullanırken, maksimum yük boyutu 2 KB'dir (2048 bayt).
HTTP / 2 sağlayıcı API'sini kullanırken, maksimum yük boyutu 4KB'dir (4096 bayt). İnternet Üzerinden Ses Protokolü (VoIP) bildirimleri için maksimum boyut 5 KB'dir (5120 bayt)
ESKİ YANIT: Apple doc'a göre iOS 8 için yük 2 kilobayt (2048 bayt) ve iOS 7 ve önceki sürümler için 256 bayt. (eski bir doküman olduğu ve şimdi bozuk olduğu için bağlantı kaldırıldı)
Bu nedenle, yalnızca metin gönderirseniz, 2028 (iOS 8+) veya 236 (iOS 7-) karakter kullanabilirsiniz.
Bildirim Yükü
Her uzaktan bildirim bir yük içerir. Yük, sistemin kullanıcıyı nasıl uyarması gerektiği ve sağladığınız özel veriler hakkında bilgiler içerir. İOS 8 ve sonraki sürümlerde, bildirim yükü için izin verilen maksimum boyut 2 kilobayttır; Apple Anında Bildirim hizmeti, bu sınırı aşan bildirimleri reddeder. (İOS 8'den önce ve OS X'te maksimum yük boyutu 256 bayttır.)
Ancak test ettim ve üretim yapılandırmalarında bile iOS 7 cihazlarına 2 kilobayt gönderebilirsiniz
Düzenli uzaktan bildirimler için maksimum boyut 4KB'dir (4096 bayt) https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html
### iOS boyut sınırı 256 bayttır, ancak iOS 8'in tanıtımı 2kb olarak değiştiğinden!
https://forums.aws.amazon.com/ann.jspa?annID=2626
İOS 8 ile Apple, mobil push bildirimleri için bazı zengin yeni kullanım durumlarını etkinleştiren yeni özellikler tanıttı - etkileşimli push bildirimleri, üçüncü taraf widget'ları ve daha büyük (2 KB) yükler. Bugün, iOS 8 ile açıklanan yeni mobil push yetenekleri için destek duyurmaktan mutluluk duyuyoruz. Bu yeni özelliklerin SNS ile nasıl uygulanabileceğini gösteren yeni bir iOS 8 Örnek Uygulaması yayınlıyoruz ve ayrıca daha büyük 2KB yükler için destek uyguladık.
WWDC'ye göre 713_hd_whats_new_in_ios_notifications. Push yükü için önceki 256 bayt boyut sınırı , şimdi iOS 8 için 2 kilobayta çıkarıldı .
Kaynak: http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0
Apple push, bir dizeyi çeşitli nedenlerden dolayı reddedecektir. Push dağıtımı için çeşitli senaryoları test ettim ve bu benim çalışma düzeltmemdi (python'da):
# 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()
Göre güncellenen Apple belgesinde (cevabım tarihini kontrol):
"... HTTP / 2 sağlayıcı API'sini kullanırken, maksimum yük boyutu 4096 bayttır. Eski ikili arabirimi kullanarak, maksimum yük boyutu 2048 bayttır. Apple Push Bildirim hizmeti (APN'ler), maksimum boyutu aşan bildirimleri reddediyor."
Apple Güncelleme Belgesi:
Her uzaktan bildirim bir yük içerir. Yük, sistemin kullanıcıyı nasıl uyarması gerektiği ve sağladığınız özel veriler hakkında bilgiler içerir. Bildirim yükü için izin verilen maksimum boyut, kullandığınız sağlayıcı API'sine bağlıdır. HTTP / 2 sağlayıcı API'sini kullanırken, maksimum yük boyutu 4096 bayttır . Eski ikili arabirimi kullanarak , maksimum yük boyutu 2048 bayttır. Apple Anında Bildirim hizmeti (APN'ler), maksimum boyutu aşan bildirimleri reddeder.
testimi burada gör
En fazla 33 Çince karakter ve 13 baytlık özel değerler gönderebilirim.