如何在我的 fcm 消息中使用图像和 vibrate_timings

Phi*_*ser 5 android push-notification android-notifications firebase firebase-cloud-messaging

我希望我的 FCM 通知包含自定义图像和振动模式。

Firebase 提供的 AndroidNotification 类作为示例具有这两个变量,但我还没有看到任何方法让它工作。

我尝试通过 ac# class AndroidNotification 将这两个变量添加到我的通知消息中,该类会序列化为 json。这是让我认为应该可行的文档 https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages 我已经观看了多个在线视频并通过了多种表格,但仍然无法设置自定义振动模式或与我的应用程序图标一起显示图像。

很多地方建议我使用仅数据消息,这样我就可以自己处理显示通知,但如果这是唯一的方法,AndroidNotification 文档(上面链接)是否显示 vibrate_timings 和图像的字段?

注意:我一直在 Android 版本 4、5 和 8 上进行测试。在 8 上,我设置了一个通知通道,一切正常,包括振动,但仍然没有图像。该图像本地包含在我的 apk 中,与我的自定义图标位于同一路径。另外,我的 apk 是用 unity 构建的,但我认为这不会影响事情。

这是我发送的 json 有效负载,我得到了自定义声音、自定义图标、自定义颜色等,一切都很好,只是图像和 vibrate_timings 似乎不起作用。

{
   "validate_only":false,
   "message":{
      "data":null,
      "android":{
         "collapse_key":"new_messages",
         "priority":1,
         "restricted_package_name":"",
         "data":{

         },
         "notification":{
            "title":"A spoon is ready!",
            "body":"Grab it before someone else!",
            "icon":"spoonsbuzz",
            "channel_id":"cow",
            "color":"#0000FF",
            "sound":"cow.wav",
            "vibrate_timings":[
               "0.0s",
               "0.2s",
               "0.1s",
               "0.2s",
               "0.1s",
               "1.5s"
            ],
            "visibility":2,
            "tag":"new_messages",
            "click_action":"",
            "body_loc_key":"",
            "body_loc_args":[

            ],
            "title_loc_key":"",
            "title_loc_args":[

            ],
            "image":"spoonsbuzzimage",
            "notification_priority":4
         }
      },
      "apns":null,
      "token":"Bot"
   }
}
Run Code Online (Sandbox Code Playgroud)

我希望我的设备能够收到我添加到有效负载中的图像的通知,并按照我使用 vibrate_timings 设置的模式振动。通知确实很好,其他一切都正常,但不包括图像或自定义振动。

小智 1

已经很长时间了,但如果有人遇到这个问题,他们应该添加 default_vibrate_timings 字段,如下所示:

{...
    default_vibrate_timings: false,
    vibrate_timings: [
                "0.0s",
                "0.2s",
                "0.1s",
                "o.2s"
     ],
...}
Run Code Online (Sandbox Code Playgroud)

供参考:文档链接