目录

应用在前台时能否获取通知消息的内容

问题现象

应用在前台打开有什么接口能在获取到通知消息的内容,使用pushService.receiveMessage()并没有触发消息回调?

解决方案

应用内推送消息或通知内容可以分为以下几种场景:

应用处于后台场景:

仅有语音播报消息和应用内通话消息可以在应用内接收消息,使用后台消息可以缓存消息,但不会拉起应用进程。

应用处于前台场景:

可以通过在UIAbility中调用pushService.receiveMessage接收Push场景化消息。

  • UIAbility.onCreate是同步接口,不支持异步回调,需要在onCreate生命周期的入口,完成pushService.receiveMessage()注册,并且保证在注册前没有等待异步方法执行的调用。
  • 需要在对应的UIAbility类型的组件的onCreate()中,调用receiveMessage()方法接收消息,并不是固定在EntryAbility的onCreate()中调用。

获取通知栏消息内容场景:

调用notificationManager.getActiveNotifications可以获取当前应用未删除的通知列表。可以通过读取返回值中NotificationRequest获取通知内容。