我计划在我的 iOS 应用程序中通过 FCM 实现静默通知。我发现许多文章和 SO 帖子描述了如何实现这一目标。但我的问题源于我在 FCM文档中找到了这个代码片段。请注意评论的第一行。
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult)
-> Void) {
// If you are receiving a notification message while your app is in the background,
// this callback will not be fired till the user taps on the notification launching the application.
// TODO: Handle data of notification
// With swizzling disabled you must let Messaging know about the message, for Analytics
// Messaging.messaging().appDidReceiveMessage(userInfo)
// Print message ID.
if let messageID = userInfo[gcmMessageIDKey] {
print("Message ID: \(messageID)")
}
// Print full message.
print(userInfo)
completionHandler(UIBackgroundFetchResult.newData)
}
此代码在标题处理静默推送通知下提供。据我了解,无论应用程序处于什么状态,静默通知都不会出现在屏幕上或以任何方式提醒用户。那为什么会提到点击通知?
我的意图是向 iOS 设备发送静默通知并执行一些后台任务,而无需任何用户交互。后台通知的限制是可以接受的。由于我目前没有苹果开发者帐户的权限来测试这一点,任何人都可以告诉我这是否可以通过 FCM 实现?或者我应该考虑直接使用 APNS 吗?