Android Firebase推送通知在后台振动

Android Firebase推送通知在后台振动,android,firebase,push-notification,firebase-cloud-messaging,Android,Firebase,Push Notification,Firebase Cloud Messaging,我正在使用Android的com.google.firebase:firebase messaging:10.0.1,试图在应用程序处于后台且收到推送通知时使设备振动。 我将以下json发送到FCM服务器: to: 'topics/...', notification: { title: 'New Message', body: 'top security body', sound: 'mysound', action_click: 'top_security'

我正在使用Android的
com.google.firebase:firebase messaging:10.0.1
,试图在应用程序处于后台且收到推送通知时使设备振动。 我将以下json发送到FCM服务器:

to: 'topics/...',
notification: {
    title: 'New Message',
    body: 'top security body',
    sound: 'mysound',
    action_click: 'top_security'
}
当应用程序位于前台时,会触发
FirebaseMessagingService
onMessageReceived
方法,我可以添加振动。但是,当应用程序在后台时,
onMessageReceived
不会被调用,我无法控制振动。我的第一个想法是在后台和前台都使用
数据
块,但如果没有
通知
块,iOS客户端在后台不会接收推送

那么,当应用程序处于后台时,如何将振动添加到推送通知中?
另外,当我在设备上打开振动模式时,推送通知会导致振动而不是播放声音。

使用

数据
有效载荷而不是
通知
有效载荷,因为即使应用程序是后台或前台,数据有效载荷也会触发
onMessageReceived
。您的请求将如下所示

data: {
    title: 'New Message',
    body: 'top security body',
    sound: 'mysound',
    action_click: 'top_security'
}
要从
data
有效负载中检索
onMessageReceived
中的数据,请调用
remoteMessage.getData()将在
映射中返回结果

例如:

Map<String, String> data = remoteMessage.getData();
String title = data.get("title");
String body = data.get("body");
Map data=remoteMessage.getData();
字符串title=data.get(“title”);
字符串body=data.get(“body”);
然后根据需要使用该数据自定义通知


希望这有帮助:)

因为你应该发送静默通知,所以请遵循此链接,请参考我在该链接中的答案,@mahmoudmoustafa我正在使用android,请参见tagsSee也查看此答案,我们在android和ios上都使用推送通知。如果没有
通知
块,iOS客户端不会在后台显示推送通知。您还可以在一个请求中组合两个有效负载(通知和数据)。你试过了吗@伊利亚雷明