2016-01-15 1 views
3

В настоящее время, вы должны иметь разрешение на уведомления, предоставленные пользователем:Можно ли зарегистрировать для уведомлений Push Push CKS без необходимости спрашивать пользователя?

UIApplication *application = [UIApplication sharedApplication]; 

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]; 
[application registerUserNotificationSettings:settings]; 
[application registerForRemoteNotifications]; 

Можно ли еще получить удаленные уведомления для подписки без необходимости спрашивать разрешения? Кстати, моя CKS-подписка для зоны записи.

+0

AFAIK, в iOS 9 (и, следовательно, tvOS), вам необходимо запросить разрешение на отображение уведомлений пользователю, но не регистрироваться для удаленных уведомлений. – jcaron

+0

@jcaron Итак, мне нужно избавиться от 'registerUserNotificationSettings', part, then? Также ... что же тогда для iOS 8? – mattsven

+0

Только что тестировалось как на 9, так и на 8, требуется часть 'registerUserNotificationSettings' :( – mattsven

ответ

1

Желаю, чтобы был способ сделать это, не прослушивая пользователя. Тем более, что даже если пользователь говорит «Нет», iCloud все еще получает необходимые уведомления. Поэтому действительно бессмысленно, что предупреждение запрашивает пользователя.

Но проблема в том, что звонки registerForRemoteNotifications и registerUserNotificationSettings: не относятся к iCloud.

Я думаю, что любой, кто использует CloudKit, должен сделать запрос об улучшении Apple, предлагая API, который позволяет зарегистрировать приложение для уведомлений iCloud без необходимости запрашивать у пользователя разрешение (результат которого в любом случае игнорируется).

Чтобы ответить на ваш вопрос - нет, в настоящее время невозможно зарегистрировать уведомления iCloud без необходимости запрашивать пользователя.

+0

Если пользователь говорит« Нет », приложение не будет зарегистрировано для получения каких-либо уведомлений, в том числе CKS-подписных. Это разочаровывает .. ( – berec

2

На самом деле, похоже, есть способ получить заметки CKSsubscription, не запутывая пользователя, прося его разрешить эти «видимые уведомления».

Для этого вы должны опустить [application registerUserNotificationSettings:settings] строку кода и просто позвонить [application registerForRemoteNotifications] без предварительной настройки.

Далее, чтобы приложение могло получать push-заметки молча, перейдите к возможностям вашего приложения, активируйте «Фоновые режимы» и установите флажок «Удаленные уведомления».

Счастливое кодирование!

+0

Так что пользователю не нужно включать уведомления для вашего приложения, чтобы это работало? – mattsven

+0

Да, в этом случае приложение даже не указан в разделе «Уведомления» в приложении «Настройки». – berec

+0

Awesom е. Спасибо, что поделился! Хотел бы я отметить ваш ответ как принято: / – mattsven