Quelle est la longueur maximale d'un texte d'alerte de notification push?

Réponses:

245

Les limites réelles du texte d'alerte ne sont documentées nulle part. La seule chose que dit la documentation 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 Apple refuse toute notification dépassant cette limite. (Avant iOS 8 et OS X, la taille maximale de la charge utile est de 256 octets.)

C'est ce que j'ai pu trouver en faisant des expériences.

  • Alertes: avant iOS 7, la limite d'affichage des alertes était de 107 caractères. Les messages plus volumineux étaient tronqués et vous obteniez 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 notifications: les messages du centre de notifications sont tronqués autour de 110 caractères ou 4 lignes.
  • Écran de verrouillage: identique à un centre de notification.

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 devez pas tronquer votre message.

ascandroli
la source
8
Il convient de préciser qu'un UIAlertView intégré à l'application n'a pas de limite d'affichage; le texte sur une certaine longueur ira dans une vue de défilement. Cependant, un SMS ou une alerte push a probablement cette limite de 107 caractères.
azdev
1
Et le texte affiché n'est pas limité par la charge utile, car lorsque vous utilisez la méthode de localisation, il ne correspond plus à 1: 1. La charge utile peut être courte tandis que le message final peut être beaucoup plus long. La question est d'afficher un message qui n'est pas strictement lié à la longueur maximale de la charge utile.
Marcin
1
Je pourrais envoyer une énorme charge utile au bac à sable et elle serait livrée, mais le serveur de production était très restrictif à seulement 256 octets et pas un octet de plus.
DoctorDbx
Quelqu'un peut-il dire à la longueur du texte d'affichage GCM Android push notif?
harikrishnan
1
1. Pour les notifications Voice over Internet Protocol (VoIP), la taille maximale de la charge utile est de 5 Ko (5 120 octets). 2. Pour toutes les autres notifications à distance, la taille maximale de la charge utile est de 4 Ko (4 096 octets).
vikram le
26

Il doit être de 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, en considérant si la charge utile est minimale et ne contient que les informations d'alerte, cela devrait ressembler à:

{"aps":{"alert":""}}

Cela prend 20 caractères (20 octets), laissant 236 octets à insérer dans la chaîne d'alerte. Avec ASCII, ce sera 236 caractères, et pourrait être moindre avec UTF8 et UTF16.

Anurag
la source
Le codage ASCII enfreint la spécification JSON, qui nécessite UTF-8, UTF-16LE, UTF-16BE, UTF-32LE ou UTF-32BE. Voir ietf.org/rfc/rfc4627.txt ; page 4.
Aaron Brager
14
ASCII est un sous-ensemble de UTF-8, il est donc toujours sûr de transmettre ASCII 8 bits sur le fil.
Patrick Horn
juste curieux, pourquoi vous avez mentionné alors Il devrait être 236 octets. ..Je suis en cours d'exécution avec un problème de troncature..si je compte la longueur totale des caractères, elle ne dépasse pas plus de 1024 caractères, la longueur des caractères du message d'alerte tronquée est de 509 que je reçois. Quelle pourrait être la raison possible d'une réponse tronquée. Toute suggestion !!
Hitendra Joshi
15

La limite des notifications de format amélioré est documentée ici .

Il déclare explicitement:

La charge utile ne doit pas dépasser 256 octets et ne doit pas être terminée par une valeur nulle.

ascandroli prétend ci - dessus qu'ils ont pu envoyer des messages de 1400 caractères. Mes propres tests avec le nouveau format de notification ont montré qu'un message de seulement 1 octet au-dessus de la limite de 256 octets était rejeté. Étant donné que la documentation est très explicite sur ce point, je suggère qu'il est plus sûr d'utiliser 256 indépendamment de ce que vous pourrez peut-être 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 totale de la charge utile 256, il sera affiché par iOS. Ils tronquent le message qui s'affiche dans la barre d'état, mais si vous ouvrez le centre de notification, l'intégralité du message est là. Il rend même les caractères de nouvelle ligne \n.

William Denniss
la source
12

ÉDITER:

Mettre à jour la réponse avec les dernières informations

La taille maximale autorisée pour une charge utile de notification dépend de l'API du fournisseur que vous utilisez.

Lors de l'utilisation de l'ancienne interface binaire, 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 (4 096 octets). Pour les notifications de voix sur protocole Internet (VoIP), la taille maximale est de 5 Ko (5120 octets)

ANCIENNE RÉPONSE: Selon le document Apple, la charge utile pour iOS 8 est de 2 kilo-octets (2048 octets) et de 256 octets pour iOS 7 et les versions antérieures. (supprimé le lien car c'était un vieux document et il est maintenant cassé)

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 à distance comprend une charge utile. La charge utile contient des informations sur la manière dont le système doit alerter l'utilisateur ainsi que sur les 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; Le service Apple Push Notification refuse toute notification qui dépasse cette limite. (Avant iOS 8 et OS X, la taille maximale de la charge utile est de 256 octets.)

Mais j'ai testé et vous pouvez également envoyer 2 kilo-octets aux appareils iOS 7, même dans les configurations de production

jcesarmobile
la source
Cher votant négatif, si vous votez contre parce que les liens sont rompus, toutes les informations sont déjà là et elles sont correctes, le lien n'était que pour référence. Aussi, il est bon de dire pourquoi vous n'avez pas voté.
jcesarmobile
10

Voici quelques captures d'écran (bannière, alerte et centre de notification)

AlerteBannièreCentre de notification

Loozie
la source
7

Pour les notifications à distance régulières, la taille maximale est de 4 Ko (4 096 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, elle est passée à 2 Ko!

https://forums.aws.amazon.com/ann.jspa?annID=2626

Avec iOS 8, Apple a introduit de nouvelles fonctionnalités qui permettent de nouveaux cas d'utilisation riches pour les notifications push mobiles: notifications push interactives, widgets tiers et charges utiles plus volumineuses (2 Ko). Aujourd'hui, nous sommes heureux d'annoncer la prise en charge des nouvelles capacités de push mobile annoncées avec iOS 8. Nous publions un nouvel exemple d'application iOS 8 qui montre comment ces nouvelles fonctionnalités peuvent être implémentées avec SNS, et avons également implémenté la prise en charge de charges utiles plus volumineuses de 2 Ko.

Jorgesys
la source
5

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

klefevre
la source
@Diziet Désolé, je ne trouve pas de note officielle sur ce point mais cela a été officiellement annoncé lors de la dernière WWDC. Even Urban Airship l'a annoncé: urbanairship.com/blog/2014/07/02/…
klefevre
Voici les diapositives / vidéo si quelqu'un veut un lien Apple: developer.apple.com/videos/wwdc/2014 - Recherche "Quoi de neuf dans les notifications iOS"
Diziet
@ kl91 C'est bon. Désynchronisé avec les commentaires, j'ai supprimé mon commentaire lorsque j'ai trouvé la source. Si vous téléchargez le PDF, c'est à la page 82.
Diziet
1
@ kl94, donc si l'application prend toujours en charge le ciblage pour iOS 7, la limite de taille de 2 Ko s'appliquera-t-elle également aux notifications push envoyées aux appareils iOS 7? Ou la question est: le nouveau 2 ko est-il pour toutes les notifications push, quelle que soit la plate-forme cible?
Jing
@Jing Nous pouvons penser avec optimisme que la nouvelle limite de taille s'appliquera à chaque plateforme.
klefevre
1

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()
Philip Fung
la source
Merci. Je pense que le plus important est le raisonnement derrière 120, cependant - comment en êtes-vous arrivé à ce nombre? Serait-il préférable de faire la troncature de longueur après les guillemets et les retours à la ligne, car c'est une meilleure représentation de la longueur de la chaîne finale envoyée à Apple?
Rup
Merci pour votre commentaire sur la suppression de toutes les citations, sur iOS 11, il y a un bogue étrange où il sonne le message mais ne montre rien.
Pedro Góes
1

Selon le 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 4 096 octets. En utilisant l'ancienne interface binaire, la taille maximale de la charge utile est de 2 048 octets. Le service de notification push d'Apple (APN) refuse toute notification qui dépasse la taille maximale."

Burak
la source
1

Document mis à jour Apple:

Chaque notification à distance comprend une charge utile. La charge utile contient des informations sur la manière dont le système doit alerter l'utilisateur ainsi que sur 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 utilisez. Lors de l'utilisation de l'API du fournisseur HTTP / 2, la taille maximale de la charge utile est de 4 096 octets . En utilisant l' ancienne interface binaire, la taille maximale de la charge utile est de 2 048 octets. Le service de notification push Apple (APN) refuse toute notification dépassant la taille maximale.

SaRaVaNaN DM
la source
0

voir mon test ici

Je pourrais envoyer jusqu'à 33 caractères chinois et 13 octets de valeurs personnalisées.

ours de feu
la source