当应用在后台或被杀死时,如何显示抬头通知?

时间:2020-03-30 15:05:42

标签: android firebase-cloud-messaging

我正在使用FCM在android中进行通知。当我的应用程序处于前台时,抬头通知工作正常。但是,当我在后台将消息推送到我的应用或被杀死时,抬头通知不会显示。当我的应用程序在后台或被杀死时,我希望看到提示通知。我尝试在节点上添加此代码android:{ priority: 'high' },但不起作用。如何显示注意提示? 节点js

app.post('/api/push',upload.single(),(req,res)=>{
    let pushMsg = req.body.pushMsg;
    let groupName = req.body.groupName;
    var condition = "'"+groupName+"' in topics";
    var message = {
        android:{
            priority: 'high'
        },
      notification: {
        title: 'Updated',
        body: pushMsg        
        },
      condition: condition
    };

    admin.messaging().send(message)
      .then((response) => {
        console.log('Successfully sent message:', response);
      })
      .catch((error) => {
        console.log('Error sending message:', error);
      });

})

Android中的FirebaseCode


class FirebaseMessagingService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        Log.d("TAG", "Refreshed token: $token")

    }

    override fun onMessageReceived(remoteMessage: RemoteMessage) {

        Log.d("TAG", "From: " + remoteMessage.from!!)

        val messageBody = remoteMessage.notification?.body
        val messageTitle = remoteMessage.notification?.title
        val intent = Intent(this, LoginActivity::class.java)
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
        val pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT)
        val channelId ="1000"
        val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
        val inboxStyle = NotificationCompat.InboxStyle()

        val notificationBuilder = NotificationCompat.Builder(this,channelId)
            .setSmallIcon(R.drawable.haiilogo)
            .setContentTitle(messageTitle)
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            //.setContentIntent(pendingIntent)
            .setLargeIcon(BitmapFactory.decodeResource(resources, R.drawable.haii))
            .setColor(resources.getColor(R.color.colorPrimary))
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .setDefaults(NotificationCompat.DEFAULT_ALL)
            .setStyle(inboxStyle)
            .setFullScreenIntent(pendingIntent,true)


        val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
            val channelName ="ScheduleChannel"

            val channel = NotificationChannel(channelId,channelName,NotificationManager.IMPORTANCE_DEFAULT)
            channel.enableLights(true)
            channel.lightColor= 0x00FFFF
            channel.setShowBadge(false)
            notificationManager.createNotificationChannel(channel)
        }
        notificationManager.notify(0,notificationBuilder.build())



    }

}

清单

 <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>

    <application>...
   <service android:name=".firebase.FirebaseMessagingService"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
</application>

0 个答案:

没有答案