首页 > 解决方案 > 从 FCM 通知接收开始导航目的地的参数

问题描述

我有一个导航图,它从一个带有一个参数的特定片段开始startingId

默认情况下,在我的图表中,我将其值设置为 0

到目前为止,我让后端开发人员向我发送了仅包含以下内容的通知data

"data" : {
    "startingId" : 3
}

这意味着它总是会触发我的应用程序(即使它在后台),我会创建一个带有待处理意图的通知,该通知将使用正确的参数加载我的应用程序

不幸的是,该应用程序跨平台了,现在他们必须向我发送 FCM 消息,如下所示:

"notification" : {
    "title_loc_key" : "start_changed"
    "body_loc_key" : "start_changed_body"
    "android_channel_id" : "updates"
}
"data" : {
    "startingId" : 3
}

这意味着当我的应用程序在后台时,当用户单击通知时,应用程序将以 startId -> 3 作为参数的包启动

但我不能在我的起始片段中使用那个包

相反,我在片段中所做的是这样的:

private val startingId by lazy { activity.intent?.extras?.getValue("startingId")?.toString()?.toIntOrNull()?: 0 }

我已经startingId从我的起始片段中删除了这个论点

有没有办法创建一个通知,将“数据”有效负载传递给我的起始目标片段,就像我只使用“数据”json对象一样?还是我坚持从活动的意图中检索价值?

标签: androidfirebase-cloud-messaging

解决方案


推荐阅读