Kitty Опубликовано 2 октября, 2016 Поделиться Опубликовано 2 октября, 2016 Не могу понять как работают уведомления в iOS. Код из документации: void __fastcall TForm1::Button3Click(TObject *Sender) { if (NotificationCenter1->Supported()) { TNotification *myNotification = NotificationCenter1->CreateNotification(); __try { myNotification->Number = 18; myNotification->AlertBody = L"C++ for your mobile device is here! Привет."; NotificationCenter1->PresentNotification(myNotification); ShowMessage(L"Проверка");//<--- вижу сообщение } __finally { myNotification->DisposeOf(); } } } А в шторке пусто... Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 2 октября, 2016 Модераторы Поделиться Опубликовано 2 октября, 2016 12 минут назад, Kitty сказал: Не могу понять как работают уведомления в iOS. Код из документации: void __fastcall TForm1::Button3Click(TObject *Sender) { if (NotificationCenter1->Supported()) { TNotification *myNotification = NotificationCenter1->CreateNotification(); __try { myNotification->Number = 18; myNotification->AlertBody = L"C++ for your mobile device is here! Привет."; NotificationCenter1->PresentNotification(myNotification); ShowMessage(L"Проверка");//<--- вижу сообщение } __finally { myNotification->DisposeOf(); } } } А в шторке пусто... попробуй убрать Supported Цитата Ссылка на комментарий
0 Kitty Опубликовано 2 октября, 2016 Автор Поделиться Опубликовано 2 октября, 2016 Я вижу ShowMessage(L"Проверка"); значит все ОК. Каким-то странным образом один раз был нотификейшен. Добиться увидеть повторно не удается. Может что-то на устройстве iOS надо настроить? Цитата Ссылка на комментарий
0 master webs Опубликовано 2 октября, 2016 Поделиться Опубликовано 2 октября, 2016 32 минуты назад, Kitty сказал: Я вижу ShowMessage(L"Проверка"); значит все ОК. Каким-то странным образом один раз был нотификейшен. Добиться увидеть повторно не удается. Может что-то на устройстве iOS надо настроить? ios не отображает уведомление если приложение запущено Kitty, Равиль Зарипов (ZuBy), Pax Beach и 1 другой 4 Цитата Ссылка на комментарий
0 Kitty Опубликовано 3 октября, 2016 Автор Поделиться Опубликовано 3 октября, 2016 Тогда подскажите, как лучше сделать? Для андроида в проекте так: приложение запущено, пользователь входит в зону действия компонента TBeacon и получает в шторку звуковое стандартное уведомление. Пользователь может нажать на уведомление и перейти по ссылке или просто закрыть уведомление. Просто и удобно. Если iOS не поддерживает такой стиль взаимодействия с пользователем, то с точки зрения правильного интерфейса для iOS, подскажите, пожалуйста, как лучше сделать взаимодействие с пользователем по аналогии с проектом андроида? Цитата Ссылка на комментарий
0 Pax Beach Опубликовано 3 октября, 2016 Поделиться Опубликовано 3 октября, 2016 5 часов назад, Kitty сказал: Тогда подскажите, как лучше сделать? Для андроида в проекте так: приложение запущено, пользователь входит в зону действия компонента TBeacon и получает в шторку звуковое стандартное уведомление. Пользователь может нажать на уведомление и перейти по ссылке или просто закрыть уведомление. Просто и удобно. Если iOS не поддерживает такой стиль взаимодействия с пользователем, то с точки зрения правильного интерфейса для iOS, подскажите, пожалуйста, как лучше сделать взаимодействие с пользователем по аналогии с проектом андроида? Подтверждается, что уведомление не показывается, только когда приложение активно? Просто, зачем шторка, когда приложение активно? Оно ведь и само, при получении уведомление может показать нужный диалог или открыть форму. Kitty и Brovin Yaroslav 2 Цитата Ссылка на комментарий
0 Kitty Опубликовано 3 октября, 2016 Автор Поделиться Опубликовано 3 октября, 2016 У меня одно уведомление отображается при старте программы, остальные уведомления появляются в зависимости входит пользователь в зону TBeacon или выходит. Уведомления в шторке андроида очень удобны. Приложение общается с пользователем уведомлениями. Пользователь может отклонить уведомление, может нажать на него и получить нужную логику. Когда приложение активно в iOS ничего не показывается. Один раз при старте программы в iOS показалось и теперь уже никак. Получается для iOS надо создавать отдельную форму с диалогом и звуковым сопровождением... Цитата Ссылка на комментарий
0 Kitty Опубликовано 4 октября, 2016 Автор Поделиться Опубликовано 4 октября, 2016 И все таки не до конца понятно как переделать интерфейс. Для андроида где все просто и понятно так: Пользователь запустил приложение и получил уведомление с акцией. Пользователь может перейти по акции, закрыть уведомление, проигнорировать его. При входе в зону TBeacon пользователь получает дополнительное уведомление с дополнительной акцией. Если пользователь проигнорировал оба уведомления они висят в шторке и он в любой момент может к ним вернуться (удалить, перейти, продолжать игнорировать). Для iOS, поскольку оно не способно показывать уведомления при запущенном приложении: Сделала отдельное диалоговое окно. При старте программы показывается это окно с акцией. Теперь допустим пользователь не перешел в нем по акции и не закрыл его, и входит в зону TBeacon, надо ему показать дополнительную уточняющую акцию и при этом сохранить первую, которая висит в диалоговом окне при старте и которую пользователь пока не обработал - или перешел к акции или закрыл диалоговое окно. Как правильно организовать вывод этой информации в интерфейсе IOS? Два диалоговых окна это же уродливо... Подскажите, как правильно? Спасибо. Цитата Ссылка на комментарий
0 master webs Опубликовано 4 октября, 2016 Поделиться Опубликовано 4 октября, 2016 42 минуты назад, Kitty сказал: И все таки не до конца понятно как переделать интерфейс. Для андроида где все просто и понятно так: Пользователь запустил приложение и получил уведомление с акцией. Пользователь может перейти по акции, закрыть уведомление, проигнорировать его. При входе в зону TBeacon пользователь получает дополнительное уведомление с дополнительной акцией. Если пользователь проигнорировал оба уведомления они висят в шторке и он в любой момент может к ним вернуться (удалить, перейти, продолжать игнорировать). Для iOS, поскольку оно не способно показывать уведомления при запущенном приложении: Сделала отдельное диалоговое окно. При старте программы показывается это окно с акцией. Теперь допустим пользователь не перешел в нем по акции и не закрыл его, и входит в зону TBeacon, надо ему показать дополнительную уточняющую акцию и при этом сохранить первую, которая висит в диалоговом окне при старте и которую пользователь пока не обработал - или перешел к акции или закрыл диалоговое окно. Как правильно организовать вывод этой информации в интерфейсе IOS? Два диалоговых окна это же уродливо... Подскажите, как правильно? Спасибо. вариант №1 организовать свою шторку в открытом приложении по типу listview и там хранить уведомления 2 ставить в очередь уведомления после закрытия первого отображать второе 3 хранить в json и создать отдельную вкладку для отображения списка всех уведомлений вариантов очень много Kitty 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 И все-таки мне никак не удается получить на iOS 10 уведомление, ни когда приложение свернуто, ни когда развернуто - ни при каких обстоятельствах. FMLocalNotificationPermission установлено true (Project -> Options -> Version Info). Код if (NotificationCenter1->Supported()) { TNotification * myNotification = NotificationCenter1->CreateNotification(); __try { String MES = L"FireMonkey run!"; myNotification->AlertBody = MES; myNotification->FireDate = Now(); NotificationCenter1->PresentNotification(myNotification); } __finally { myNotification->DisposeOf(); } } Что еще надо сделать, чтобы увидеть Notification в iOS 10? Спасибо. Цитата Ссылка на комментарий
0 master webs Опубликовано 10 октября, 2016 Поделиться Опубликовано 10 октября, 2016 myNotification->FireDate = Now(); Вы создаете уведомления сразу попробуйте отложить на минуту и свернуть приложение Kitty 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 12 октября, 2016 Автор Поделиться Опубликовано 12 октября, 2016 Подскажите, пожалуйста, ответ на такой вопрос. Добавлен код: myNotification->Number = 1; При уведомлении на иконке приложения появился красный кружок с цифрой 1. А теперь пользователь взял потянул шторку вниз и удалил уведомление, а на ярлыке программы красный кружок с цифрой остался. Можно ли как-то отследить ситуацию, что пользователь удалил уведомление из шторки и соответственно тогда очистить ярлык программы: NotificationCenter1->ApplicationIconBadgeNumber = 0; ? Цитата Ссылка на комментарий
0 Администраторы Brovin Yaroslav Опубликовано 12 октября, 2016 Администраторы Поделиться Опубликовано 12 октября, 2016 17 минут назад, Kitty сказал: Можно ли как-то отследить ситуацию, что пользователь удалил уведомление из шторки и соответственно тогда очистить ярлык программы: нет. iOS не предоставляет такой функциональности. Более того, приложение может быть и не запущено в принципе. И в этом случае некому об этом сообщать. Равиль Зарипов (ZuBy), Kitty и Pax Beach 3 Цитата Ссылка на комментарий
0 Kitty Опубликовано 15 октября, 2016 Автор Поделиться Опубликовано 15 октября, 2016 (изменено) Подскажите, пожалуйста, как из приложения fmx ios проиграть звук стандарного уведомления зарегистрированного на телефоне? Изменено 15 октября, 2016 пользователем Kitty Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 15 октября, 2016 Модераторы Поделиться Опубликовано 15 октября, 2016 2 часа назад, Kitty сказал: Подскажите, пожалуйста, как из приложения fmx ios проиграть звук стандарного уведомления зарегистрированного на телефоне? https://developer.apple.com/reference/audiotoolbox/1405202-audioservicesplayalertsound Цитата Note System-supplied alert sounds and system-supplied user-interface sound effects are not available to your iOS application. For example, using the kSystemSoundID_UserPreferredAlert constant as a parameter to the AudioServicesPlayAlertSound function will not play anything. Kitty 1 Цитата Ссылка на комментарий
Вопрос
Kitty
Не могу понять как работают уведомления в iOS. Код из документации:
void __fastcall TForm1::Button3Click(TObject *Sender) { if (NotificationCenter1->Supported()) { TNotification *myNotification = NotificationCenter1->CreateNotification(); __try { myNotification->Number = 18; myNotification->AlertBody = L"C++ for your mobile device is here! Привет."; NotificationCenter1->PresentNotification(myNotification); ShowMessage(L"Проверка");//<--- вижу сообщение } __finally { myNotification->DisposeOf(); } } }
А в шторке пусто...
Ссылка на комментарий
14 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.