Метод делегата токена pu sh не вызывается в частности в iPhone 5s с ios 12.4.5 - PullRequest
1 голос
/ 16 марта 2020

Я включил VoIP и удаленное уведомление в моем приложении, но, в частности, в iPhone 5 с ios 12.4.5. Я получил токен VoIP или удаленный токен. Метод токенов UIApplicationDelegate и метод токенов PKPushRegistryDelegate не вызывают. что тут не так я уже пробовал с сильной сотовой сетью вместо подключения с wifi. и другие варианты iPhone вроде iPhone 6 и iPhone XR работают нормально. Пожалуйста, помогите мне с этой проблемой.

Я использовал сертификат уведомления pu sh с упоминанием ниже как для удаленного доступа, так и для VoIP pu sh.

enter image description here

вот мой код

@interface AppDelegate : UIResponder <UIApplicationDelegate,PKPushRegistryDelegate,UNUserNotificationCenterDelegate>
{
     PKPushRegistry *voipRegistry;
}

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self pushNotificationRegister];
     return true;
 }

-(void)pushNotificationRegister
{
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        UNAuthorizationOptions options = UNAuthorizationOptionAlert + UNAuthorizationOptionSound + UNAuthorizationOptionBadge;
        center.delegate = self;

        [center requestAuthorizationWithOptions:options completionHandler:^(BOOL granted, NSError * _Nullable error){

            if( !error ){

                dispatch_async(dispatch_get_main_queue(), ^{

                    [self voipRegistration];

                    [UIApplication.sharedApplication registerForRemoteNotifications];

                });
            }
        }];
        [center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {

            if (settings.authorizationStatus != UNAuthorizationStatusAuthorized) {

            }
        }];
}


- (void) voipRegistration
{
    voipRegistry = [[PKPushRegistry alloc] initWithQueue: dispatch_get_main_queue()];
    voipRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
    voipRegistry.delegate = self;
}

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{
     // Not invoke
}

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
     // Not invoke
}

- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)pushCredentials forType:(PKPushType)type
{
     // Not invoke
}

- (void)pushRegistry:(PKPushRegistry *)registry didInvalidatePushTokenForType:(PKPushType)type
{
     // Not invoke
}

- (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
{
    completionHandler(UNNotificationPresentationOptionAlert | UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound);
}

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

@end
...