/ / Perder o token de alguma forma e a notificação vai apenas para o telefone e não para o aplicativo (publicar atualizações do ios10) - iOS, token, ios10, notificações remotas

Perder o token de alguma forma e a notificação vai apenas para o telefone e não para o aplicativo (atualizações post ios10) - ios, token, ios10, notificações remotas

Atualizei meu aplicativo para ios10 e tenho as alterações necessárias em vigor, bifurcando o código entre ios10 e abaixo para atingir as chamadas de método adequadas.

Parece funcionar corretamente. Eu tenho um som de aplicativo específico que me diz que o envio remoto foi processado pelo aplicativo, se não, o som do dispositivo padrão é usado.

Após a instalação para testar o dispositivo, tudo está correto. Mas de vez em quando e aparentemente de forma aleatória, eu perco o recibo de push centrado no aplicativo no meu dispositivo. Meu console nunca mostra o push, pois ele não é enviado para o telefone.

Eu executo o Console IOS para assisti-lo e parece relatar que um token "completamente desconhecido" foi recebido. Funciona no meu dispositivo pré-ios10.

Não sei como determinar o que está errado, já que tudo funciona corretamente no início.

No momento, estou supondo que meu tratamento de conclusão pode não estar correto e que o iOS10 está punindo meu aplicativo.

Vou editar a pergunta o quanto puder quando tiver mais pistas, mas no momento, isso é muito problemático.

Respostas:

0 para resposta № 1

Você se registrou para a notificação push?

#define SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")){
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if( !error ){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
}

return YES;
}

Você implementou os métodos de delegação abaixo?

-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{

//Called to let your app know which action was selected by the user for a given notification.

NSLog(@"Userinfo %@",response.notification.request.content.userInfo);

}

E você pode verificar isso fio para mais pistas

iOS 10 e 9 seguem uma estrutura de carga útil diferente.

O iOS 10 segue

 {
"aps":{
"alert":{
"body":"YOUR_MESSAGE."
},
"badge":1
},
“YOUR_VARIABLE” : "YOUR VALUE"
}

onde segue iOS <9

{
“aps” :     {
“alert” : "YOUR_MESSAGE.”,
“badge” : 1,
“sound” : “default”
},
“YOUR_VARIABLE” : "YOUR VALUE"
}

Acho que esse pode ser o problema