2016-09-26 54 views
0

我在我的android應用程序中集成了FCM推送通知。我正在使用FCM控制檯發送通知。當應用程序處於前臺時我正在顯示自定義通知,因爲我可以讀取public void onMessageReceived(RemoteMessage remoteMessage)方法中的數據,但問題是我不會在應用程序中使用onMessageReceived()方法獲取數據在後臺。在android中使用FCM自定義推送通知

請讓我知道是否有任何方式來定製通知,當應用程序在後臺。

 if (remoteMessage.getData().size() > 0) { 
     Log.i("Message data payload: ", String.valueOf(remoteMessage.getData().toString())); 

     notification_type = remoteMessage.getData().get("type"); 
     switch (notification_type){ 
      case "store": 
       store_id = String.valueOf(remoteMessage.getData().get("store_id")); 
       image_url = String.valueOf(remoteMessage.getData().get("url")); 
       Log.i("prrr",store_id+"XCx"+String.valueOf(remoteMessage.getData().get("store_id"))); 
//     message = String.valueOf(remoteMessage.getData().get("message")); 
        break; 
       case "product": 
        product_id = String.valueOf(remoteMessage.getData().get("product_id")); 
        Log.i("prrr",product_id+"XCx"+String.valueOf(remoteMessage.getData().get("product_id"))); 
        store_id = String.valueOf(remoteMessage.getData().get("store_id")); 
        image_url = String.valueOf(remoteMessage.getData().get("url")); 
//     message = String.valueOf(remoteMessage.getData().get("message")); 
        break; 
       case "category": 
        category_id = String.valueOf(remoteMessage.getData().get("category_id")); 
        store_id = String.valueOf(remoteMessage.getData().get("store_id")); 
        Log.i("prrr",store_id+"XCx"+String.valueOf(remoteMessage.getData().get("store_id"))); 
        Log.i("prrr",category_id+"XCx"+String.valueOf(remoteMessage.getData().get("category_id"))); 
        image_url = String.valueOf(remoteMessage.getData().get("url")); 
//     message = String.valueOf(remoteMessage.getData().get("message")); 
        category_name = String.valueOf(remoteMessage.getData().get("category_name")); 
        break; 

     } 


    } 

    // Check if message contains a notification payload. 
    if (remoteMessage.getNotification() != null) { 
     Log.i("Message No: " ,"h"+remoteMessage.getNotification().getBody()); 
     title = remoteMessage.getNotification().getBody(); 
    } 

    sendNotification(String.valueOf(remoteMessage.getData().get("url"))); 

在此先感謝

+0

你是如何從FCM觸發內容?也發佈你的onMessageReceive() –

+0

將提前的消息標題選項將給參數 –

+0

閱讀http://stackoverflow.com/questions/35257410/how-to-customize-notification-display-and-tone-when- using-gcmreceiver-and-gcmlis –

回答

1

這是一個衆所周知的問題。您應該通過服務器發送您的通知,作爲數據消息,而不是通過控制檯。

如果這是不可能的,因爲某些原因,你應該檢查出this tutorial.

+0

我知道,同時android系統會顯示默認notification.Is有任何方式來定製that.Or如何檢測數據,而不點擊它? –

+0

如何在創建應用程序服務器後關閉應用程序(而不是bg&fg)時顯示通知。如同將廣播接收器用於GCM –