Xamarin HMS 推送工具包、通知消息、参数"foreground_show"被忽略?



根据华为官方文档,"您可以设置message.android.notification.foreground_show字段,使NC不显示通知消息。在这种情况下,当您的应用程序在前台运行时,通知消息会透明地传输到您的应用,并由您的应用进行处理和显示">

样本代码:

{
"message": {
"notification": {
"title": "message title",
"body": "message body"
},
"android": {
"notification": {
"foreground_show": false,
"click_action": {
"type": 1,
"action": "com.huawei.codelabpush.intent.action.test"
}
}
},
"token": [
"pushtoken1"
]
}

}

我对这个参数有问题,它似乎被忽略了。我创建了一个实现HmsMessageService类的消息服务,然后重写了它的OnMessageReceived(RemoteMessage消息(方法。

我的应用程序成功地从服务器获取访问令牌,在前台接收数据消息,在应用程序关闭或处于后台时,我的设备接收通知消息,然后在用户点击时启动应用程序,但在应用程序处于前台时,我仍然无法拦截通知消息。

其他人有这个问题吗?

您必须在"活动"中实现IHmsPushEvent接口,否则将无法侦听事件。此接口的功能提供侦听HmsPush事件。

解决方案:

  1. 实现"活动"的IHmsPushEvent接口
  2. 配置OnMessageReceived方法
  3. 发送通知后,将收到远程消息
  4. 使用GetNotification方法获取通知数据

示例代码:

public void OnMessageReceived(RemoteMessage message)
{
string MethodName = MethodBase.GetCurrentMethod().Name;
RemoteMessage.Notification notification = message.GetNotification();
Log.Info(MethodName,$"Title: {notification.Title}nBody:{notification.Body}");
}

有关更多详细信息,请参阅文档。

相关内容

  • 没有找到相关文章

最新更新