Подтвердить что ты не робот

Установить стиль локального уведомления iOS по умолчанию для приложения

Начиная с iOS 5, существует два стиля уведомления: баннер и предупреждение ( "старый" стиль). Пользователь может установить, какой стиль использовать для каждого приложения в настройках. Однако теперь по умолчанию кажется, что уведомления отображаются в стиле баннера.

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

Есть ли способ либо через код, либо, например, Info.plist записи, чтобы сообщить iOS, что уведомления о стиле предупреждения должны использоваться по умолчанию (если пользователь не настроил что-то еще)?

Обновление. Отсутствие информации/документации недостаточно для меня, чтобы это было разрешено. Я хочу либо что-то вроде форума/сообщения в блоге от кого-то с полномочиями (сотрудник Apple или кто-то по линии Эрики Садун), говоря, что это невозможно, или если это возможно, я хочу решение. Обходной путь, например "попросить пользователя изменить настройку", тоже недостаточно.

4b9b3361

Ответ 1

Я хотел бы добавить что-то, так как я открыл TSI, и почему-то я спросил об этом и получил ответ. От Куинна "Эскимосский!":

"Это зависит от того, что вы имеете в виду. У вас есть некоторый контроль над тем, как появляется уведомление, исходя из того, как вы устанавливаете свойства UILocalNotification (такие вещи, как alertBody, soundName и т.д.). Однако, если вы спрашиваете о том, как которые интерпретируются этими свойствами (то, что пользователь может настроить в настройках > Уведомления), это пользовательские настройки и не отображаются через какой-либо API.

Ответ 2

У меня есть приложение для будильника, для которого мне также нужна эта функциональность. Под iOS5, если пользователь использует другое приложение, когда он отключается, появляется баннер. Следовательно, я потратил много времени на поиск решения.

Однако невозможно управлять стилем оповещения, генерируемым UILocalNotification. Я боюсь: (

Из ссылки на класс вы можете видеть, что нет никаких условий для этого:

http://developer.apple.com/library/IOs/#documentation/iPhone/Reference/UILocalNotification_Class/Reference/Reference.html

Или в plist:

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

Лучше всего сказать пользователю, что делать, чтобы изменить настройки.

Ответ 3

Вы, вероятно, не найдете "авторитетных" от своих сверстников здесь, вам лучше спросить напрямую Apple; и вопрос уже был задан несколько раз на их форумах и не ответил...

Руководство по программированию HIG - http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/TechnologyUsage/TechnologyUsage.html#//apple_ref/doc/uid/TP40006556-CH18-SW1 -

"Приложения iOS, поддерживающие локальные или push-уведомления, могут участвовать в Центр уведомлений по-разному, в зависимости от пользователей предпочтения".

Это последнее предложение - единственный "авторитетный намек", который я нашел.

Настройки USER <= вы не можете принуждать пользователя (предпочтения). Период. Этот выбор дизайна, безусловно, является Apple Way (ограниченная площадка для игр с ограниченными возможностями, чтобы обеспечить наилучший пользовательский опыт)

Что касается большего авторитета... может быть, кричать?

НЕТ НЕ МОЖЕТЕ ВЫБРАТЬ СООТВЕТСТВИЕ СООТВЕТСТВИЯ ВАШИМ УВЕДОМЛЕНИЯМ, ВЫБОР ПОЛЬЗОВАТЕЛЯ

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

Удачи!

Ответ 4

Очевидно, вам не нравится слышать "нет" для ответа, но нет.

Ответ 5

Вы можете использовать эту строку для запроса текущих настроек стиля уведомления:

UIRemoteNotificationType* enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

Вы можете проверить enabledTypes, а затем дать указание пользователю изменить стиль уведомлений в настройках.

Ответ 6

Вы пробовали

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

в вашем методе didFinishLaunching, это не поможет этим обновлениям, но должно включать предупреждения для тех, кто сначала устанавливает