点击 Fcm 通知时打开深度链接 URL

15

我正在使用 Google 的 Fcm 向我的 Android 客户端发送通知。

我想要通过深度链接 URL(例如 example://my.app/products)打开特定的屏幕。

这是使用 REST API 发送通知的端点。

https://fcm.googleapis.com/fcm/send
Content-Type: application/json
Authorization: key={SERVER_KEY}

{
 "to" : "{Firebase client token}",
 "collapse_key" : "type_a",
 "notification" : {
     "body" : "Body of Your Notification",
     "title": "Title of Your Notification"
     "click_action": "example://my.app/products"
 }
}

这个请求会向我指定的客户端发送通知,但是当点击推送时不会打开Deep Link,什么也没有发生。

是否有一种方法可以从FCM推送中打开Deep Link?

2个回答

12

这个功能在 Fcm 文档中没有提到但是我自己进行了一些测试并找到了解决方案:

我们需要将 click_action 替换为 link


我们需要将 click_action 替换为 link
https://fcm.googleapis.com/fcm/send
Content-Type: application/json
Authorization: key={SERVER_KEY}

{
 "to" : "{Firebase client token}",
 "collapse_key" : "type_a",
 "notification" : {
     "body" : "Body of Your Notification",
     "title": "Title of Your Notification"
     "link": "example://my.app/products"  <<-- Here is the solution
 }
}

2
我尝试了你的解决方案,但是我得到了以下错误信息:{ "error": { "code": 400, "message": "接收到无效的 JSON 负载。在 'message.android.notification' 中找不到未知名称“link”的字段。", "status": "INVALID_ARGUMENT", "details": [ .... ] } ] } } - Dario Scoppelletti
1
请求数据如下: { "notification" : { "body" : "消息文本", }, "android" : { "priority" : "正常", "notification" : { "sound" : "默认", "channel_id" : "渠道ID", "link" : "app://www.myapp.app/path/path" } }, "token" : "设备令牌" } 谢谢 - Dario Scoppelletti
@DarioScoppelletti 所以,Firebase本身不支持在用户按下通知时打开深度链接,我理解得对吗? - Oleg Yablokov
@DarioScoppelletti 这似乎是针对 Android 的。我有一个 React Native 应用程序,我也需要在 Firebase 云消息中嵌入深链接。我该如何使其在 iOS 和 Android 上都能正常工作? - Victor Cui
@VictorCui 抱歉,我不熟悉React Native。 - Dario Scoppelletti
显示剩余4条评论

1
注意:如果您想在用户点击通知时在应用程序中打开页面,请参考此处
我将其发布为答案,因为我尝试实现在我的应用程序中打开页面,并认为深链接可能会有所帮助,但这可能不是最佳解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接