2017-03-22 52 views
1

我使用node-gcm向Android設備發送通知,並且在某些情況下,我需要發送帶有通知的圖像作爲縮略圖顯示,如下所示: notification with thumbnail使用node-gcm發送android通知而不折疊它們

有時我需要發送沒有縮略圖的通知。隨着下面的代碼,我可以通知發送圖像,問題是接收到另一個通知時,他們崩潰,使得新覆蓋的通知已經在那裏了:

var message = new gcm.Message({ 
       "data" : { 
        "title" : "Test", 
        "message" : "Test message!", 
        "priority" : 2, // Highest priority. 
        "ledColor" : [255, 0, 0, 1], 
        "content-available": "1", 
        "image": req.body.notificationImageUrl, //<-- image URL 
       }, 
      }); 

但如果我成立像下面的消息,我找不到發送圖像的方式,但通知不會崩潰,並且都會顯示。另一個問題是,LED不會在這個版本激活:

var message = new gcm.Message({ 
       data: { 
        "priority" : 2, // Highest priority. 
        "content-available": "1", 
        "image": req.body.notificationImageUrl, // <-- image URL 
       }, 
       notification:{ 
        title: "Test", 
        body: "Test message!", 
        color: "#892121", 
        sound: 'default', 
        vibrationPattern: [300, 150, 300], // Vibrate for 300ms then wait 150ms and then vibrate for 300ms. 
        ledColor: [255, 0, 0, 1], // <-- this does not work 
       }, 
      }); 

我想是送與縮略圖通知的方式,它不會覆蓋的通知,這是以前沒有辦法。

編輯:我忘了提,即時通訊使用的離子與框架科爾多瓦所以除非有一種方法,通過這些框架來做到這一點,我不能管理設備的通知。 在此先感謝!

回答

2

雖然經歷了node-gcm issues我找到了解決辦法,有一個名爲「notId」的ID添加到通知參數。

var message = new gcm.Message({ 
    "data": { 
     "title": "Test", 
     "message": "Test message!", 
     "priority": 2, // Highest priority. 
     "ledColor": [255, 0, 0, 1], 
     "content-available": "1", 
     "image": req.body.notificationImageUrl, 
     "notId": parseInt(Math.random() * new Date().getSeconds(), 10), // <-- this solved the problem 
    }, 
}); 
0

通知顯示的管理是在設備上完成的。您必須確保您在Android上爲每個通知設置了不同的NOTIFICATION_ID,否則最後一個將始終替換之前的NOTIFICATION_ID。

// Sets an ID for the notification - make sure to change this for different notifications 
int mNotificationId = 001; 

// Gets an instance of the NotificationManager service 
NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

// Builds the notification and issues it 
mNotifyMgr.notify(mNotificationId, mBuilder.build()); 
+1

由於我在科爾多瓦使用Ionic Framework(抱歉,忘記提及,已經編輯),我無法應用您的解決方案,但我會嘗試使用這些框架來完成此任務。謝謝! 注意:我可以使用第二個代碼片段以不覆蓋對方的方式發送通知,但我無法找到發送圖像的方式,如前所述。 –

相關問題