尝试在我的项目中实现Notifications时,Delphi Seattle无法正确引用FMX.Notification

这是我得到的:

[DCC致命错误] UnitMain.pas(27):F2613找不到单元'FMX.Notification'。

然后,它会自动引用System.Notification,但是,当尝试使用此类中的对象时,它会使我的Android应用程序崩溃。

如何在Delphi Seattle上正确实现通知?

注意:它必须同时在iOSAndroid上运行。

最佳答案

根据Embarcadero's official Seattle changes:

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;
    

    10-08 20:06