【问题标题】:How can I get firemonkey to display a local notification on iOS?如何让 firemonkey 在 iOS 上显示本地通知?
【发布时间】:2016-01-15 21:56:35
【问题描述】:

我从 Embarcadero 网站 (here) 提取了以下代码以生成本地通知。

procedure TForm1.SetNumberClick(Sender: TObject);
var
  MyNotification: TNotification;
begin
  // Create an instance of TNotification
  MyNotification := NotificationCenter1.CreateNotification;
  try
      MyNotification.Number :=18;
      MyNotification.AlertBody := 'Delphi for your mobile device is here!';
      NotificationCenter1.PresentNotification(MyNotification);
  finally
    MyNotification.DisposeOf;
  end;
end;

它编译并运行。正如预期的那样,我确实必须在我的表单上创建 NotificationCenter1 作为 TNotificationCenter 。它可以在 Android 下找到,但在 iOS 下我得到了 butkus。没有本地通知,没有图标,甚至没有错误。

它曾经在 XE8 下工作过吗?

XE8 和 10/Seattle 之间的本地通知有什么变化吗?

我的手机运行的是 iOS 9.2。 8.x 和 9.x 之间的 iOS 中是否发生了一些改变,会破坏 Firemonkey 的本地通知?

【问题讨论】:

    标签: ios firemonkey delphi-xe8 delphi-10-seattle


    【解决方案1】:

    我之前关注过tutorial,它确实有效。

    10 Seattle 还附带两个示例应用程序。

    我刚刚在带有 Delphi 10 Seattle Update 1 的 iOS 9.2 上尝试了这两种方法,它们都按预期工作。 (也在 XE8 中工作)。您的代码看起来也正确。

    也许您在某个时候告诉 iOS 不要向您显示通知。您检查应用程序设置了吗?

    【讨论】:

    • 知道了,其他应用程序允许通知通过,所以 iOS 配置不是问题。我还认为它可能被埋没在权利中。但是,它似乎在逻辑一致的位置“项目->选项->版本信息”:^)
    【解决方案2】:

    最终的解决方案有两个:

    1. 您必须将 FMLocalNotificationPermission 设置为 true(项目 -> 选项 -> 版本信息)
    2. 通知将在应用在前台运行(例如,您已返回主屏幕、关闭应用、 ETC。)。这适用于 ScheduleNotification 和 PresentNotification 方法。

    【讨论】:

    • 您确实需要将 FMLocalNotificationPermission 设置为 true(教程中也有),但该应用程序不需要运行。您甚至可以重新启动,通知仍会发送。
    • 正确,默认情况下,如果您的应用在前台,iOS 不会显示通知,但我认为您可以在通知设置中更改。
    猜你喜欢
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多