2016-09-26 57 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 –