Как я узнаю, что мое устройство заблокировано для получения уведомлений VoIP?
Мое устройство перестает получать уведомления VoIP после получения 3-4 раза. Я понимаю, что с iOS 13 уведомления VoIP следует отправлять на CallKit
. Даже после сообщения CallKit
я сталкиваюсь с проблемой отсутствия уведомлений VoIP.
мы установили apns-expiration равным 0, а приоритет - немедленно (10)
- (void)pushRegistry:(PKPushRegistry *)registry didReceiveIncomingPushWithPayload:(PKPushPayload *)payload forType:(PKPushType)type withCompletionHandler:(void(^)(void))completion {
if(type == PKPushTypeVoIP) {
self.notificationMessage = payload.dictionaryPayload;
CXProviderConfiguration* config = [[CXProviderConfiguration alloc] initWithLocalizedName:@"Test app"];
config.supportsVideo = YES;
self.provider = [[CXProvider alloc] initWithConfiguration:config];
[self.provider setDelegate:self queue:nil];
CXCallUpdate* update = [[CXCallUpdate alloc] init];
update.localizedCallerName = @"Test caller";
update.hasVideo = YES;
NSString *uuidString = [[NSUUID UUID] UUIDString];
self.callUUID = [[NSUUID alloc] initWithUUIDString:uuidString];
[self.provider reportNewIncomingCallWithUUID:self.callUUID update:update completion:^(NSError * _Nullable error) {
if(error != nil) { NSLog(@"error: %@", error); }
NSLog(@"----------Incoming call reported successfully--------");
completion();
}];
}
}
Обработка действия пользователя с использованием методов делегата CXProvider
- (void)provider:(CXProvider *)provider performAnswerCallAction:(CXAnswerCallAction *)action {
[action fulfill];
}
- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action {
if (self.callUUID == nil) {
[action fail];
return;
}
[action fulfill];
}
Пожалуйста, дайте мне знать, где я ошибаюсь .. Заранее спасибо.