Pregunta

En la documentación de Notification iPhone Push, que tienen un fragmento de código en el que anulan el método UIApplication que recibe un token dispositivo -

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken {
const void *devTokenBytes = [devToken bytes];
self.registered = YES;
[self sendProviderDeviceToken:devTokenBytes]; // custom method
}

Mi pregunta es, cuando implemente mi propio método personalizado, ¿cómo se utiliza los devTokenBytes?

Es necesario crear una solicitud HTTP, usando NSURLConnection (supongo), que hará entrega de la aplicación de contadores a mi proveedor del lado del servidor. Me sale esa parte, pero no estoy seguro de cómo agregar devTokenBytes a la solicitud? Mi primer instinto era utilizar los bytes para crear un objeto String, pero cuando trato de usar NSASCIIStringEncoding recibo un revoltijo extraño de caracteres. Veo que el tipo de retorno del método de "bytes" de NSData es un puntero, pero no sé qué hacer con él. ¿Cuál es la forma correcta de poner este token en una solicitud?

La documentación también detalla - "que la aplicación debe conectar con su proveedor y pasarlo este modo, codificado en formato binario." Pero no sé cómo manejar algo codificado de esta manera.

¿Fue útil?

Solución 2

Parece que la forma más fácil de manejar esto es usar el valor devuelto por el método de "descripción" de NSData. Se va a devolver una cadena que se puede jugar con un poco para conseguir una representación de 64 caracteres.

Otros consejos

Yo no lo he probado todavía, pero mi primera conjetura sería que mirar base 64 que codifica la matriz binaria en una cadena limpia de 7 bits que se puede pasar como parámetro de consulta en su petición.

También puede publicar los datos a una dirección URL en su lugar, pero yo creo que lo codifica sería más fácil.

No estoy seguro de si esto es lo que busca:

deviceTokenString = [[[[[deviceToken description]
                            stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                           stringByReplacingOccurrencesOfString: @">" withString: @""] 
                          stringByReplacingOccurrencesOfString: @" " withString: @""] retain];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top