По документам Embarcadero по этой ссылке Я тестирую уведомления на iOS (в приложении FMX, созданном на C ++).Я сделал следующее:
- Добавлен
#include <System.Notification.hpp>
в заголовочный файл - Установите
FMLocalNotificationPermission
в true
- Удален
TNotificationCenter
компонент включенформа
Затем я нажимаю на кнопку следующий код:
void __fastcall TForm1::ScheduleNotificationClick(TObject *Sender)
{
if (NotificationCenter1->Supported()) {
TNotification *myNotification = NotificationCenter1->CreateNotification();
__try {
myNotification->Name = "MyNotification";
myNotification->AlertBody = "C++ for your mobile device is here!";
// Fire in 10 seconds
myNotification->FireDate = Now() + EncodeTime(0, 0, 10, 0);
// Send notification to the notification center
NotificationCenter1->ScheduleNotification(myNotification);
}
__finally {
myNotification->DisposeOf();
}
}
}
Время от времени это работает ... но редко и никогда больше, чем один раз.В большинстве случаев это не так (повторное удаление и переустановка приложения).
Затем я попробовал код «Немедленно представить сообщение уведомления», который они предоставляют:
void __fastcall TForm1::PresentNotificationClick(TObject *Sender)
{
if (NotificationCenter1->Supported()) {
TNotification *myNotification = NotificationCenter1->CreateNotification();
__try {
myNotification->Name = "MyNotification";
myNotification->AlertBody = "C++ for your mobile device is here!";
// Set Icon Badge Number (for iOS) or message number (for Android) as well
myNotification->Number = 18;
myNotification->EnableSound = False;
// Send notification to the notification center
NotificationCenter1->PresentNotification(myNotification);
}
__finally {
myNotification->DisposeOf();
}
}
}
С этим кодом ничего не происходит.Я пробовал это с нуля несколько раз, и я настолько уверен, насколько я могу, что я кодирую это в соответствии с их примерами.Я использую 10.3 (Embarcadero C ++ Builder 10.3 Версия 26.0.32429.4364).Я думаю, что у моего кода есть проблема, за исключением того, что однажды в Blue Moon он работает.
Моя цель - iPhone под управлением 12.1.4, и я пробовал строить с SDK11.4 и SDK12.0, без разницы.Когда я впервые запускаю приложение, я получаю всплывающее окно «разрешить или не разрешать», и мое приложение впоследствии появляется в настройках уведомлений - просто не работает.
russ
ОБНОВЛЕНИЕ 3-25-2019 : Если я запускаю этот верхний блок кода (при нажатии кнопки на iPhone), он теперь будет запускаться каждый раз, но ТОЛЬКО ЕСЛИ я сразу же убиваю приложение после нажатия.10 секунд спустя он запускает уведомление.Почему не появится уведомление, если я оставлю приложение запущенным?