web-dev-qa-db-fra.com

Limite de caractères de notification push iPhone

Je suis tout nouveau à IOS Notifications Push. J'ai lu à leur sujet et je n'arrive pas à trouver ces informations n'importe où. J'ai lu que la taille limite d'une notification Push est de 256 octets. . Cette limite de taille inclut-elle des éléments tels que le jeton d'appareil qui doit être envoyé et d'autres informations supplémentaires sur la notification. Si oui, quelle est la taille réelle dont je dispose pour mon contenu.

Quel format utilisent-ils également pour interpréter le texte que j'envoie? Est-ce que la conversion 1 caractère = 1 octet ou est-ce plus que cela. Vraiment, je veux savoir combien de caractères puis-je envoyer dans des notifications Push.

Merci de votre aide pour comprendre les limites des charges utiles de notification Push.

30
jcmitch

Chaque notification Push comporte une charge utile. La charge utile spécifie comment les utilisateurs doivent être alertés des données en attente de téléchargement vers l'application cliente. La taille maximale autorisée pour une charge utile de notification est de 256 octets; Apple Push Notification Service refuse toute notification qui dépasse cette limite.

Pour chaque notification, les fournisseurs doivent composer un objet de dictionnaire JSON qui respecte strictement la RFC 4627. Ce dictionnaire doit contenir un autre dictionnaire identifié par les clés aps. Le dictionnaire aps contient une ou plusieurs propriétés qui spécifient les actions suivantes:

  • Un message d'alerte à afficher à l'utilisateur
  • Un numéro pour badger l'icône de l'application
  • Un son à jouer

- Guide de programmation des notifications locales et push

Donc, répondant à votre question,

Cette limite de taille inclut-elle des éléments tels que le jeton d'appareil qui doit être envoyé et d'autres informations de surcharge sur la notification.

Oui, cette limite de taille inclut le jeton d'appareil et d'autres informations de surcharge.

Est-ce que la conversion 1 caractère = 1 octet ou est-ce plus que cela.

Cela est vrai si vous utilisez uniquement des lettres latines dans votre notification.

49
Andrey Zverev

Ce qui précède est assez peu clair, car "inclure" peut signifier "il est déjà inclus" ou "vous devez l'inclure". Pour être très clair, l'ID de l'appareil est des "métadonnées", ne fait pas partie de la charge utile et ne sort pas de votre budget de 256 caractères. L'autre surcharge APS (dictionnaire de charge utile standard) l'est cependant.

Source: la documentation ci-dessus plus l'expérimentation à vérifier.

5
tooluser

Dans mon test APNS dans l'environnement de production, jusqu'à 33 caractères chinois et 2 propriétés personnalisées de 13 octets ont pu être envoyés avec succès.

{

    "aps": {
        "alert": "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三",
        "badge": 12,
    }
    "t": 123,
    "v": "1234567890"
}

La longueur de charge utile ci-dessus était de 158 octets si elle était enregistrée en tant que fichier, sans compter les caractères d'espace. Chaque caractère chinois comptait pour 3 octets (je l'ai confirmé en les supprimant tous pour voir le changement de taille).

Comme le mentionne le document officiel, la limitation de 256 octets n'inclut pas le jeton d'appareil, mais je pense qu'il existe d'autres caractères dans lesquels APNS sont comptés, tels que `` son '' et `` contenu disponible '' même si vous ne l'utilisez pas explicitement.

Veillez donc à ne pas être "trop long", en particulier lorsque vous utilisez des charges utiles personnalisées. Sachez que l'environnement de développement APNS ne limite pas la longueur de la charge utile. Votre test réussit lors de l'utilisation de l'environnement de développement, mais peut échouer dans le produit. Ne le prenez pas comme certain.

3
firebear