Firebase云消息通知震动

17

在使用Firebase Cloud Messaging时,是否可以使Android设备在后台接收通知时振动?从语法参考中可以看到并测试声音功能是支持的,但没有提及振动信息。或者是否可以为此通知提供自定义实现,在其中直接设置振动效果?


1
我认为你需要在构建通知时进行实现。 你之前看过这个帖子吗? - AL.
2
FCM的问题在于,当通知被发送且应用处于后台时,通知是在内部构建的。我认为自定义通知的解决方案是仅传递数据有效负载,从而确保调用我的服务的onMessageReceived()方法,然后在该方法实现中构建通知。 - apidae
请参见 https://dev59.com/15_ha4cB1Zd3GeqP2KM0。 - Kato
4个回答

30

你应该将自己标记为正确答案。

顺便提一下,如果你要发送通知和数据有效负载,请使用

"notification":{
    "sound":"default"
}

当应用程序在后台运行且设备设置为声音时,它将播放声音;当设备设置为振动时,它将播放振动。

然而,就自定义而言,我认为你只需要使用数据有效负载(Data Payload),例如想要自定义振动模式时才需要使用。


7
我所测试的FCM通知消息格式似乎非常严格,因此对于定制通知,解决方案如下:
  1. 确保下行发送的JSON消息的有效负载包含“data”参数,但不包含“notification”参数(来源:消息JSON语法FCM消息类型
  2. 在应用程序的FirebaseMessagingService的重写onMessageReceived(RemoteMessage remoteMessage)实现中创建通知(示例

这只是通知的声音还是也包括震动 - newbieguy
如果我在iOS和Android上使用相同的消息会怎样?我无法避免消息中的“通知”对象。虽然添加“声音”字段,但在后台不会震动... - Igor SKRYL

0

现在Firebase已经支持了。通知应该长这样:

{...
    default_vibrate_timings: false,
    vibrate_timings: [
                "0.0s",
                "0.2s",
                "0.1s",
                "o.2s"
     ],
...}

官方文档


-6

array("title"=>"你好","body" =>"世界你好",'sound' => '默认')


function send_notification($tokens,$notification) {$url = 'https://fcm.googleapis.com/fcm/send'; $priority="high"; $fields = array( 'registration_ids' => $tokens, 'notification' => $notification ); - Ramya Roy

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