如何在 iOS 上显示使用 firebase-cpp-sdk 收到的 FCM“数据”消息?
Posted
技术标签:
【中文标题】如何在 iOS 上显示使用 firebase-cpp-sdk 收到的 FCM“数据”消息?【英文标题】:How to display FCM 'data' message received using firebase-cpp-sdk on iOS? 【发布时间】:2020-06-03 20:26:08 【问题描述】:当我的应用程序处于后台或被终止时,我需要显示通知。我使用 firebase-cpp-sdk 在 ios 上显示 FCM '通知' 消息没有问题,我尝试了 quickstart-cpp/messaging/testapp
并且它工作正常。但是当应用程序处于后台或前台时收到“数据”消息时 - 没有显示通知,我只是在日志中看到收到消息。
我在消息中使用"content_available": true
,正如许多答案所建议的那样。正如我在日志中看到的那样,这有助于实际接收“数据”消息,但未显示该消息。
我尝试了旧的 HTTP 和 HTTP v1 协议,结果是一样的。
遗留 HTTP 消息的一个示例是:
"data":
"body": "Entrance door Intrusion at 2 Jun 2020 01:32:08",
"title": "Intrusion"
,
"content_available": true,
"to": "fcm_device_token_here"
我需要像在 android 上那样手动创建通知吗?或者还有其他方法可以做到吗?
【问题讨论】:
【参考方案1】:回答我自己的问题 - 是的,我创建了一个本地通知。为此,我使用了qt-notification 库,因为我使用的是 QT,但显示通知的代码示例如下(取自项目):
// create content
UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
content.title = title.toNSString(); // your title
content.body = caption.toNSString(); // your notification text
content.sound = !sound.isEmpty() ? [UNNotificationSound soundNamed: sound.toNSString()] : [UNNotificationSound defaultSound]; // your sound
// content.sound = [UNNotificationSound criticalSoundNamed: sound.toNSString() withAudioVolume: 1.0]; // For that you need Apple's permission
content.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
// create trigger time
UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:1 repeats:NO];
// unique identifier
NSString* identifierNSString = identifier.toNSString();
// create notification request
UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:identifierNSString
content:content trigger:trigger];
// add request
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = id(m_Delegate);
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error)
if (error)
NSLog(@"Local Notification failed");
];
【讨论】:
以上是关于如何在 iOS 上显示使用 firebase-cpp-sdk 收到的 FCM“数据”消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 10 上使用 CallKit 显示来电显示(添加标识条目)
如何在 iOS 中使用 MpMoviePlayerController 在 UISlider 上显示缓冲数据?
如何使用 SwiftUI 在 iOS 上获取和显示联系人照片?
如何使用点击手势(iOS8 / Swift)在 pageViewController 上显示/隐藏状态栏