簡體   English   中英

PushSharp Google Cloud Messaging 單挑通知

[英]PushSharp Google Cloud Messaging Heads-up notification

我正在為 Android 和 iOS 開發一個應用程序,我正在使用 PushSharp(在服務器端)向兩個平台發送推送通知。 特別是我正在使用(對於 Android)Firebase 平台 (FCM)。

按照指南,我能夠將推送通知發送到 Android 設備設置圖標和聲音,但我認為存在問題。 當通知到達時,它不會顯示為單挑通知,而只會顯示為狀態欄通知。

明確地說,我會:

在此處輸入圖像描述

但我只看到狀態欄上出現的應用程序圖標。

我如何告訴 FCM 將我的通知顯示為平視通知,類似於我使用以下代碼獲得的通知?

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.ic_media_play)
                        .setContentTitle("My notification")
                        .setContentText("Hello World!")
                        .setDefaults(Notification.DEFAULT_ALL)
                        .setPriority(Notification.PRIORITY_HIGH);

我通過安裝以下版本的react-native-push-notification修復了它

npm install zo0r/react-native-push-notification.git

index.android.js

function init(){
    PushNotification.configure({
        onNotification:async (notification)=>{
                if(!notification.userInteraction && !notification.foreground){
                    PushNotification.localNotification({
                      message: "you message"
                    });
                  }
               ,
                requestPermissions:true,
                senderID:"31************",
                popInitialNotification:false
        })
}
  1. 您必須在 MainActivity.java 中創建一個頻道。
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.os.Build;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

+      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {    
+        NotificationChannel notificationChannel = new 
+        NotificationChannel("500", "MainChannel", 
+        NotificationManager.IMPORTANCE_HIGH);
+        notificationChannel.setShowBadge(true);
+        notificationChannel.setDescription("Test Notifications");
+        notificationChannel.enableVibration(true);
+        notificationChannel.enableLights(true);
+        notificationChannel.setVibrationPattern(new long[]{400, 200, 400});
+        NotificationManager manager = getSystemService(NotificationManager.class);
+         manager.createNotificationChannel(notificationChannel);
+      }
  1. 將 channelId 添加到您的服務器:以 node.js 為例
        await admin
            .messaging()
            .send({
                android: {
                    priority: 'high',
                    notification: {
                        sound: 'default',
                        title: 'your title',
                        body: 'your message',
                        imageUrl: 'img-uri',
                        priority: 'high', // this is importnat
                        channelId: '500', // the channelId we created in MainActivity.java
                    },
                },
                apns: {
                    payload: {
                        aps: {
                            contentAvailable: true,
                        },
                    },
                    headers: {
                        'apns-push-type': 'background',
                        'apns-priority': '5',
                        'apns-topic': '', // your app bundle identifier
                    },
                },
                topic: //topic or token,
                data: {//send a custom data here to your client},
                notification: {
                    title: 'your title',
                    body:'your message',
                    imageUrl: 'img-url',
                },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM