Quelle est la longueur maximale d'un texte D'alerte de Notification Push?
Quelle est la longueur maximale du texte d'alerte d'une notification push iOS?
La documentation indique que la charge utile de notification doit être inférieure à 256 octets au total, mais il doit sûrement y avoir une limite de caractères spécifique pour le texte d'alerte.
11 réponses
Les limites réelles du texte d'Alerte ne sont documentées nulle part. La seule chose que la documentation dit est:
Dans iOS 8 et versions ultérieures, la taille maximale autorisée pour une charge utile de notification est de 2 kilo-octets; le service de Notification push d'Apple refuse toute notification dépassant cette limite. (Avant iOS 8 et sous OS X, la taille maximale de la charge utile est de 256 octets.)
C'est Ce que j'ai pu trouver en faisant quelques expériences.
- Alertes: Avant iOS 7 la limite d'affichage des alertes était de 107 caractères. Les messages plus gros ont été tronqués et vous obtiendriez un "..."à la fin du message affiché. Avec iOS 7, la limite semble être augmentée à 235 caractères. Si vous dépassez 8 lignes, votre message sera également tronqué.
- bannières: Les bannières sont tronquées autour de 62 caractères ou 2 lignes.
- Centre de Notification: Les messages du centre de notification sont tronqués autour de 110 caractères ou 4 ligne.
- écran de verrouillage: identique au centre de notification.
Juste pour rappel, voici une très bonne note de la documentation officielle:
Si nécessaire, iOS tronque votre message afin qu'il s'intègre bien dans chaque style de livraison de notification; pour de meilleurs résultats, vous ne devriez pas tronquer votre message.
Il devrait être 236 octets. Il n'y a aucune restriction sur la taille du texte d'alerte pour autant que je sache, mais seulement la taille totale de la charge utile. Donc, considérant si la charge utile est minime et ne contient que les informations d'alerte, elle devrait ressembler à:
{"aps":{"alert":""}}
Qui prend 20 caractères (20 octets), laissant 236 octets à mettre dans la chaîne d'alerte. Avec ASCII qui sera 236 caractères, et pourrait être moindre avec UTF8 et UTF16.
La limite des notifications au format amélioré est documentée ici.
Il indique explicitement:
La charge utile ne doit pas dépasser 256 octets et ne doit pas être terminée par null.
Ascandroli prétend ci-dessus qu'ils ont pu envoyer des messages avec 1400 caractères. Mes propres tests avec le nouveau format de notification ont montré qu'un message juste 1 octet sur la limite de 256 octets a été rejeté. Étant donné que les documents sont très explicites à ce sujet point je suggère qu'il est plus sûr d'utiliser 256 indépendamment de ce que vous pourriez être en mesure de réaliser expérimentalement car il n'y a aucune garantie Qu'Apple ne le changera pas à 256 à l'avenir.
En ce qui concerne le texte d'alerte lui-même, si vous pouvez l'adapter à la taille de la charge utile totale 256, il sera affiché par iOS. Ils tronquent le message qui apparaît dans la barre d'état, mais si vous ouvrez le centre de notification, le message entier est là. Il rend même les caractères de nouvelle ligne \n
.
Modifier:
Mettre à jour la réponse avec dernières informations
La taille maximale autorisée pour une charge utile de notification dépend de l'API du fournisseur que vous employez.
Lors de l'utilisation de l'interface binaire héritée, la taille maximale de la charge utile est de 2 KO (2048 octets).
Lors de l'utilisation de L'API du fournisseur HTTP/2, la taille maximale de la charge utile est de 4 Ko (4096 octets). Pour les notifications voix sur Protocole Internet (VoIP), la taille maximale est de 5 Ko (5120 octets)
ANCIENNE RÉPONSE: Selon l' Apple doc la charge utile pour iOS 8 est de 2 kilo-octets (2048 octets) et 256 octets pour iOS 7 et les versions antérieures. (supprimé le lien car c'était un vieux doc et il est cassé maintenant)
Donc, si vous envoyez simplement du texte, vous avez 2028 (iOS 8+) ou 236 (iOS 7-) caractères disponibles.
La Charge Utile De Notification
Chaque notification distante inclut une charge utile. La charge utile contient d'informations sur la façon dont le système doit alerter l'utilisateur ainsi que toute données personnalisées que vous fournissez. Dans iOS 8 et versions ultérieures, la taille maximale autorisée pour une charge utile de notification est de 2 kilo-octets; Notification Push Apple service refuse toute notification qui dépasse cette limite. (Avant iOS 8 et dans OS X, la taille maximale de la charge utile est de 256 octets.)
Mais j'ai testé et vous pouvez envoyer 2 kilo-octets aux appareils iOS 7 aussi, même dans les configurations de production
Voici quelques captures d'écran (bannière, alerte, & centre de notification)
Pour les notifications à distance régulières, la taille maximale est 4 Ko (4096 octets) https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html
###iOS la limite de taille est de 256 octets, mais depuis l'introduction d'iOS 8 a changé à 2kb!
Https://forums.aws.amazon.com/ann.jspa?annID=2626
Avec iOS 8, Apple a introduit de nouvelles fonctionnalités qui activer un nouveau riche cas d'utilisation pour les notifications push mobiles-push interactif notifications, widgets tiers et charges utiles plus importantes (2 KO). Aujourd', nous sommes heureux d'annoncer le soutien pour le nouveau mobile push capacités annoncées avec iOS 8. Nous publions un nouvel iOS 8 Exemple d'Application qui montre comment ces nouvelles fonctionnalités peuvent être mises en œuvre avec SNS, et ont également mis en œuvre le support pour les charges utiles 2KB plus grandes.
Selon la WWDC 713_hd_whats_new_in_ios_notifications. La limite de taille précédente de 256 octets pour une charge utile push a maintenant été augmentée à 2 kilo-octets pour iOS 8.
Source: http://asciiwwdc.com/2014/sessions/713?q=notification#1414.0
Apple push rejettera une chaîne pour diverses raisons. J'ai testé une variété de scénarios pour la livraison push, et c'était mon correctif de travail (en 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()
Selon document Apple mis à jour (Vérifiez ma date de réponse):
"... Lors de l'utilisation de L'API du fournisseur HTTP/2, la taille maximale de la charge utile est de 4096 octet. En utilisant l'interface binaire héritée, la taille maximale de la charge utile est de 2048 octet. Apple Push Notification service (APNs) refuse toute notification qui dépasse la taille maximale."
Apple A Mis À Jour Doc:
Chaque notification distante inclut une charge utile. La charge utile contient des informations sur la façon dont le système doit alerter l'utilisateur ainsi que toutes les données personnalisées que vous fournissez. La taille maximale autorisée pour une charge utile de notification dépend de l'API du fournisseur que vous employez. lors de l'utilisation de L'API du fournisseur HTTP/2, la taille maximale de la charge utile est de 4096 octets. En utilisant l'interface binaire héritée, la taille maximale de la charge utile est de 2048 octets. Service de Notification Push Apple (APNs) refuse toute notification qui dépasse la taille maximale.