私のiOSアプリケーションでVoIP通知を実装したいですが、didUpdatePushCredentialsメソッドが決して呼び出されず、デバイストークンを取得できません。didUpdatePushCredentialsが呼び出されない
私はアプリケーションでAPNSを実装しましたが、これらの2つのサービスが競合しますか?
は、ここで私は、リモート通知が有効になって私のAppDelegateコード
- (void)application:(UIApplication *)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
LOGI(@"%@", NSStringFromSelector(_cmd));
//register for voip notifications
self->pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
[self->pushRegistry setDelegate:self];
[self->pushRegistry setDesiredPushTypes:[NSSet setWithObject:PKPushTypeVoIP]];
NSLog(@"VoIP push registered");
}
#pragma mark - VoIP push methods
- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
NSLog(@"voip token: %@", credentials.token);
}
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(NSString *)type {
NSDictionary *payloadDict = [payload.dictionaryPayload valueForKey:@"aps"];
NSString *message = (NSString *)[payloadDict valueForKey:@"alert"];
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.alertBody = [message stringByAppendingString:@" - voip"];
localNotification.applicationIconBadgeNumber = 1;
localNotification.soundName = @"notes_of_the_optimistic.caf";
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
} else {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"VoIP notification" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
});
}
NSLog(@"incoming voip notfication: %@", payload.dictionaryPayload);
}
- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(NSString *)type {
NSLog(@"Voip token invalidate");
}
- で、証明書とプロビジョニングプロファイルがインストールされています。
- APNSを使用して標準通知をプッシュできます。
解決方法はありますか?
私はすでにそれを再生成します。しかし、同じ問題です。 –
@KishanVyasプッシュ証明書を作成するときに証明書が必要です。正しい証明書を選択してください。 –
私はすでに正しい証明書を作成しました。 –