Разрешения для push-уведомлений - PullRequest
7 голосов
/ 27 августа 2010

Попытка обойти несколько угловых случаев, когда push-уведомления запрещены в приложении, и у меня есть два вопроса:

1) Есть ли способ сбросить, видел ли пользователь всплывающий запрос на уведомление?

2) Есть ли способ определить, сказал ли пользователь «нет» запросу на уведомление?

Ответы [ 2 ]

5 голосов
/ 01 августа 2014

Вы всегда можете проверить статус разрешений, если пользователь их изменяет, вы можете проверить их на applicationDidBecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application
{
     if ([[UIApplication sharedApplication]  respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {
        if ([[UIApplication sharedApplication]  isRegisteredForRemoteNotifications]){
            NSLog(@"Notifications Enabled ios 8");
        } else {
            NSLog(@"Notifications not Enabled ios 8");
        }
    } else {
        UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
        if (types & UIRemoteNotificationTypeAlert)
        {
            NSLog(@"Notifications Enabled");
        }
        else
        {
            NSLog(@"Notifications not Enabled");
        }
    }

}

обновлено, чтобы оно работало и на iOS 8

5 голосов
/ 27 августа 2010

1) Нет, если не существует какого-то частного API, который делает это, но это не разрешено Apple

2) При первом запуске приложения после вызова registerForRemoteNotificationTypes вы можете проверить, вызывается ли didRegisterForRemoteNotificationsWithDeviceToken . Если это не так, пользователь сказал «Нет, спасибо».

...