这是我们在XCode
处理它们的方式:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSString *message = nil;
id alert = [userInfo objectForKey:@"alert"];
if ([alert isKindOfClass:[NSString class]]) {
message = alert;
} else if ([alert isKindOfClass:[NSDictionary class]]) {
message = [alert objectForKey:@"body"];
}
if (alert) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title"
message:@"AThe message." delegate:self
cancelButtonTitle:@"button 1"
otherButtonTitles:@"button", nil];
[alertView show];
[alertView release];
}
如果iOS
应用程序已经以相同方式运行但使用Delphi 10 Seattle
,我们如何捕获推送通知?
答案 0 :(得分:0)
注意:可悲的是我无法测试这个,因为我现在没有Mac,但这应该可行
在FMX.Platform.iOS
内你会找到
ApplicationDidReceiveRemoteNotification
方法,因此它在Delphi中实现
procedure TApplicationDelegate.applicationDidReceiveRemoteNotification(
Sender: UIApplication; ANotification: NSDictionary);
begin
PlatformCocoa.ReceivedRemoteNotification(ANotification);
end;
然后,您可以将通知作为NSDictionary
获取,然后您可以从NSDictionary
中读取值,以便以您想要的方式处理
你也可以在关于方法调整的一个问题上引用Remy的answer,告诉应用程序使用你的版本ApplicationDidReceiveRemoteNotification
而不是源代码中的那个< / p>
答案 1 :(得分:0)
仅限iOS
在表单上删除TEMSProvider
组件
在表单上删除TPushEvents
组件
将TPushEvents.Provider
绑定到TEMSProvider
设置TPushEvents.Active := True
或启用它的AutoActivate属性
TPushEvents有一个名为PushEvents1PushReceived
的事件处理它