2012-02-07 21 views
30

Soy nuevo en las notificaciones push de IOS. He estado leyendo sobre ellos y no puedo encontrar esta información en ninguna parte. He leído que el límite de tamaño en una notificación de inserción es de 256 Bytes. ¿Este límite de tamaño incluye elementos como el token del dispositivo que debe enviarse y otra información general sobre la notificación? Si es así, ¿cuál es el tamaño real que tengo disponible para mi contenido?Límite de caracteres de notificaciones push de iPhone

¿Qué formato utilizan para interpretar el texto que envío? Es la conversión de 1 carácter = 1 byte o es más que eso. Realmente quiero saber cuántos caracteres puedo enviar en notificaciones push.

Gracias por cualquier ayuda para comprender las limitaciones de las cargas útiles de notificaciones push.

Respuesta

49

Cada notificación push lleva consigo una carga útil. La carga útil especifica cómo se debe alertar a los usuarios sobre los datos que esperan ser descargados a la aplicación cliente. El tamaño máximo permitido para una carga útil de notificación es de 256 bytes; El servicio de notificación push de Apple rechaza cualquier notificación que exceda este límite.

Para cada notificación, los proveedores deben componer un objeto de diccionario JSON que se adhiere estrictamente a RFC 4627. Este diccionario debe contener otro diccionario identificado por las teclas aps. El diccionario APS contiene una o más propiedades que especifican las siguientes acciones:

  • un mensaje de alerta para mostrar al usuario
  • Un número de Badge el icono de la aplicación con
  • Un sonido para reproducir

- Local and Push Notifications Programming Guide

Por lo tanto, respondiendo a su pregunta,

¿Este límite de tamaño incluyen cosas tales como el token del dispositivo que tiene para enviarlo y otra información de cabecera acerca de la notificación.

Sí, este límite de tamaño incluye el token del dispositivo y otros datos generales.

Es la conversión de 1 carácter = 1 byte o es más que eso.

Esto es cierto si utiliza solo letras latinas en su notificación.

+0

Bien, ya que incluye los gastos generales ¿sabe cuánto espacio me quedaría después de tener en cuenta la sobrecarga? (Espacio total - Overhead =? # De los caracteres restantes) Gracias. – jcmitch

+13

teniendo en cuenta que la carga útil es mínima y solo contiene la información de alerta, usted tiene alrededor de 236 caracteres para su texto. Pero tenga en cuenta que el límite de visualización de 'UIAlertView' es de 107 caracteres. Después de eso, su mensaje se truncará y obtendrá un "..." al final del mensaje que se muestra. –

+0

Bien, gracias. UIAlertView no debería ser un problema. Solo necesita adjuntar datos para usarlos más tarde en la carga útil. – jcmitch

5

Lo anterior es bastante poco claro, porque "incluir" puede significar "ya está incluido" o "debe incluirlo". Para ser muy claro, el ID del dispositivo es 'metadata', no parte de la carga útil, y no sale de tu presupuesto de 256 caracteres. Sin embargo, la otra sobrecarga de APS (diccionario estándar de carga útil) sí lo es.

Fuente: la documentación anterior más experimentación para verificar.

3

En mi prueba APNS en el entorno de producción, se pueden enviar satisfactoriamente hasta 33 caracteres chinos y 2 propiedades personalizadas de 13 bytes.

{ 

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

La longitud de la carga útil anterior era de 158 bytes si se guardaba como archivo, sin contar los caracteres de espacio. Cada carácter chino se contó como 3 bytes (lo confirmé al eliminarlos para ver el cambio de tamaño).

Como se menciona en el documento oficial, la limitación de 256 bytes no incluye el token del dispositivo, pero creo que hay otros caracteres en los que se cuentan los APNS, como 'sonido' y 'contenido disponible' incluso si no usa explícitamente.

Así que tenga cuidado de no ser "demasiado largo", especialmente cuando usa cargas útiles personalizadas. Tenga en cuenta que el entorno de desarrollo APNS no limita la longitud de la carga útil. Su pase de prueba durante el uso del entorno de desarrollo, pero puede fallar en el producto. No lo tomes como cierto.

Cuestiones relacionadas