определить настройки центра уведомлений - PullRequest
6 голосов
/ 15 октября 2011

Мое приложение должно быть установлено в Центре уведомлений iOS 5 как «оповещения» и с включенными «звуками». Из того, что я обнаружил, ваше приложение не может предложить правильную настройку, что было бы лучшим вариантом, поэтому поправьте меня, если я ошибаюсь.

Итак, я ищу процедуру для определения текущих настроек и предупреждения пользователя, если они не верны.

Ответы [ 4 ]

1 голос
/ 27 марта 2013

на самом деле это можно сделать следующим способом -

UIRemoteNotificationType types = [UIApplicationsharedApplication] .enabledRemoteNotificationTypes;

в то время как типы

typedef enum 
{    
  UIRemoteNotificationTypeNone    = 0,   
  UIRemoteNotificationTypeBadge   = 1 << 0,   
  UIRemoteNotificationTypeSound   = 1 << 1,   
  UIRemoteNotificationTypeAlert   = 1 << 2,   
  UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3 
}

в соответствии с: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html Поэтому, если вы хотите узнать, одобрил ли пользователь ваше приложение для уведомлений, все, что вам нужно сделать, это проверить, является ли types >= 4 имейте в виду: это не скажет вам, если пользователь включил или отключил центр уведомлений для вашего приложения, оно только сообщит вам ТИП уведомления, одобренного пользователем

0 голосов
/ 08 декабря 2011

Подумайте об этом следующим образом: что бы вы, как пользователь, подумали, если бы любое другое приложение установило их? (Конечно, вы хотите, чтобы оно было включено для вашего приложения. Но не все приложения хороши, как у вас.) Или, если каждое другое приложение предупреждало вас каждый раз, когда оно запускалось?

Невозможно, и вот почему.

Как сказал Ник, просто соберите все, что, как вы надеетесь, включит пользователь. Система даст пользователю возможность разрешить это.

0 голосов
/ 28 марта 2012

Это не может быть сделано программно. И «registerForRemoteNotificationTypes» предназначен для удаленных (push) уведомлений, а не локальных.

Единственное, что мне удалось сделать, - это включить в описание моего приложения в магазине приложений объяснение того, как настроить Центр уведомлений. Я также включил это в мое демонстрационное видео.

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

Конечно, «что правильно» - это то, что хочет пользователь, но для моего приложения пользователи НИКОГДА не хотели настройки по умолчанию, а именно «баннеры». Лучший пользовательский опыт для моего приложения - только "звуки". Самая большая жалоба на мое приложение перед Центром уведомлений - всплывающие окна с локальными уведомлениями. Теперь с помощью Центра уведомлений пользователи могут отключить все, кроме «звуков». Это - установка, которую они все, кажется, хотят. Почему я, как разработчик, не могу просто дать им это по умолчанию? Если они хотят изменить это на что-то другое, это здорово, но я должен контролировать настройки по умолчанию. Но я ругаю.

0 голосов
/ 08 декабря 2011

Я не думаю, что это можно сделать программно.

Вы можете указать, какие оповещения может принимать ваше приложение при запуске.

Я бы использовал это в делегате приложения, метод didFinishLaunchingWithOptions

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:   (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
...