如何让 firemonkey 在 iOS 上显示本地通知?
How can I get firemonkey to display a local notification on iOS?
我从 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/西雅图之间的本地通知有什么变化吗?
我的 phone 是 运行 iOS 9.2。 iOS 在 8.x 和 9.x 之间是否发生了某些更改,从而破坏了 Firemonkey 的本地通知?
我之前遵循了tutorial,而且有效。
还有两个示例应用随 10 Seattle 一起提供。
我刚刚在 iOS 9.2 和 Delphi 10 Seattle Update 1 上尝试了这两个,它们按我的预期工作。 (也在 XE8 中工作)。您的代码看起来也正确。
也许在某些时候你告诉 iOS 不要向你显示通知。您是否检查了应用程序设置?
最终的解决方案有两个:
- 您必须将
FMLocalNotificationPermission
设置为 true(项目
-> 选项 -> 版本信息)
- 如果应用 不 运行 在前台(例如,您已经返回主屏幕、关闭应用程序等)。这与 ScheduleNotification 和 PresentNotification 方法有关。
我从 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/西雅图之间的本地通知有什么变化吗?
我的 phone 是 运行 iOS 9.2。 iOS 在 8.x 和 9.x 之间是否发生了某些更改,从而破坏了 Firemonkey 的本地通知?
我之前遵循了tutorial,而且有效。
还有两个示例应用随 10 Seattle 一起提供。
我刚刚在 iOS 9.2 和 Delphi 10 Seattle Update 1 上尝试了这两个,它们按我的预期工作。 (也在 XE8 中工作)。您的代码看起来也正确。
也许在某些时候你告诉 iOS 不要向你显示通知。您是否检查了应用程序设置?
最终的解决方案有两个:
- 您必须将
FMLocalNotificationPermission
设置为 true(项目 -> 选项 -> 版本信息) - 如果应用 不 运行 在前台(例如,您已经返回主屏幕、关闭应用程序等)。这与 ScheduleNotification 和 PresentNotification 方法有关。