使用FCM发送后台通知



我正在尝试使用FCM发送后台通知,但我无法使其工作。我可以让推送通知正常工作,只是不能让后台通知正常工作。关于这个问题,我查阅了很多资料,尝试了很多方法,但似乎都不起作用。

  1. 我有"推送通知";在XCode中启用>能力
  2. 我有";远程通知";在XCode中的背景模式中选中>能力
  3. 我已经正确注册了设备令牌并正确配置了APN(推送通知有效(

问题是这个方法永远不会在后台调用:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)

我尝试过的一些JSON格式是

{
"notification": {
"title": "title",
"body": "body",
},
"data":{  
"name":"name",
},
"content_available": true,
"apns":{
"headers":{
"apns-priority": "5",
"apns-push-type": "background"
},
},
topic: topic,
}
{  
"data":{  
"title":'title",
"body":"body",
},
"notification":{  
"title":"mytitle",
"body":"mybody",
"content_available": true
},
topic: topic
}

还有许多其他人。

我使用了不同的";"优先级";以及";content_available":是的。包括";"通知";而不包括他们。我把";content_available":在不同的层面上都是如此,但似乎什么都不起作用。

我看过:

FCM后台通知在iOS中不起作用https://izziswift.com/fcm-background-notifications-not-working-in-ios/

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app

Firebase FCM iOS 静默推送通知

https://firebase.google.com/docs/cloud-messaging/ios/receive

以及许多其他堆栈溢出帖子。

对于我尝试过的一些JSON配置,我得到了这个错误,我不确定为什么:

Error: Process exited with code 16
at process.on.code (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:275:22)
at process.emit (events.js:198:13)
at process.EventEmitter.emit (domain.js:448:20)
at process.exit (internal/process/per_thread.js:168:15)
at Object.sendCrashResponse (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/logger.js:37:9)
at process.on.err (/layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/invoker.js:271:22)
at process.emit (events.js:198:13)
at process.EventEmitter.emit (domain.js:448:20)
at emitPromiseRejectionWarnings (internal/process/promises.js:140:18)
at process._tickCallback (internal/process/next_tick.js:69:34) 

我真的很挣扎,任何帮助都将不胜感激!

解决方案是放置contentAvailable: true

尝试在AppDelegate中添加代码:

'Messaging.messaging().delegate =  self'
'Messaging.messaging().isAutoInitEnable = true'
'Messaging.messaging().shouldEstablishDirectChannel = true'

相关内容

  • 没有找到相关文章

最新更新