Pergunta

Na documentação Push Notification iPhone, eles têm um trecho de código em que substituir o método UIApplication que recebe um dispositivo de token -

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

A minha pergunta é, quando eu implementar o meu próprio método personalizado, como faço para usar os devTokenBytes?

Eu preciso criar uma solicitação HTTP, usando NSURLConnection (suponho), que irá entregar o token para meu aplicativo provedor do lado do servidor. Eu recebo essa parte, mas não tenho certeza como adicionar devTokenBytes ao pedido? Meu primeiro instinto foi usar os bytes para criar um objeto String, mas quando tento usar NSASCIIStringEncoding eu recebo uma bagunça confusa estranho de caracteres. Vejo que o tipo de retorno do método de "bytes" de NSData é um ponteiro, mas eu não sei o que fazer com ele. Qual é a maneira correta de colocar este token em um pedido?

A documentação também detalha - "ele aplicativo deve se conectar com o seu provedor de e passá-lo desta forma, codificado no formato binário." Mas eu não sei como lidar com algo codificado desta forma.

Foi útil?

Solução 2

Parece que a maneira mais fácil de lidar com isso é usar o valor de retorno da "descrição" método de NSData. Ele vai retornar uma String que você pode jogar com um pouco para conseguir uma representação de 64 caracteres.

Outras dicas

Eu não tentei isso ainda, mas meu primeiro palpite seria a olhar para Base64 que codifica a matriz binária em um 7-bit corda limpa que pode ser passado como um parâmetro de consulta em seu pedido.

Você também pode postar os dados para um URL em vez disso, mas eu acho codificação que seria mais fácil.

Im não sei se isso é o que procuras:

deviceTokenString = [[[[[deviceToken description]
                            stringByReplacingOccurrencesOfString: @"<" withString: @""] 
                           stringByReplacingOccurrencesOfString: @">" withString: @""] 
                          stringByReplacingOccurrencesOfString: @" " withString: @""] retain];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top