Delphi Seattle не может ссылаться на класс FMX по умолчанию

При попытке реализовать уведомления в моем проекте, Delphi Seattle не может ссылаться FMX.Notification должным образом.

Вот что я получаю:

[Фатальная ошибка DCC] UnitMain.pas(27): F2613 Модуль "FMX.Notification" не найден.

И тогда это автоматически делает ссылку на System.Notification, однако он вылетает из моего Android-приложения при попытке использовать объект из этого класса.

Как правильно внедрить уведомления в Delphi Seattle?

Примечание: он должен работать на обоих iOS а также Android ,

1 ответ

Решение

В соответствии с официальными изменениями Embarcadero в Сиэтле:

Блок уведомлений FMX.Notification был заменен System.Notification,

TNotificationCenter компонент теперь поддерживает Windows 8 и более поздние версии Windows. Этот компонент также претерпел некоторые незначительные изменения:

  • Он предоставляет свойство Loaded, чтобы проверить, готов ли центр уведомлений к использованию или нет.
  • Тип ApplicationIconBadgeNumber изменилось с Word на Integer.
  • это Supported метод больше не нужен и был удален.

TBaseNotificationCenter класс заменил IFMXNotificationCenter интерфейс. Классы, которые использовали для реализации IFMXNotificationCenter интерфейс должен стать подклассом TBaseNotificationCenter и реализовать виртуальные абстрактные методы их родительского класса.


Таким образом, как я понял, чтобы отображать уведомления сейчас:

procedure TForm_Master.showNotification(Sender: TObject);
var
  MyNotification: TNotification;
begin

    MyNotification := NotificationCenter1.CreateNotification;

    try
      MyNotification.Name := 'NotificationName';
      MyNotification.AlertBody :=
        'Here goes your message';
      MyNotification.FireDate := Now;
      // Send notification to the notification center
      NotificationCenter1.ScheduleNotification(MyNotification);
    finally
      MyNotification.Free;
    end;

  end;
Другие вопросы по тегам