Установить стиль локального уведомления iOS по умолчанию для приложения - PullRequest
37 голосов
/ 22 ноября 2011

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

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

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

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

Ответы [ 6 ]

20 голосов
/ 04 февраля 2012

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

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

16 голосов
/ 24 ноября 2011

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

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

Из ссылки на класс видно, что для нее нет условий:

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

Или в листе:

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

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

11 голосов
/ 29 ноября 2011

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

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

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

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

ПОЛЬЗОВАТЕЛЬСКИЙпредпочтения <= вы не можете заставить пользователя (предпочтения).Период.Этот выбор дизайна явно Apple Way (игровая площадка приложений ограничена, чтобы обеспечить наилучшее взаимодействие с пользователем) </p>

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

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

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

удачи!

4 голосов
/ 28 ноября 2011

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

0 голосов
/ 30 июня 2013

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

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

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

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

вы пробовали

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...