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 № 1Você 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