1

Firebase Cloud Messaging documentationには、大きなビュー/拡張レイアウトの通知について何も言及されていません。Firebase Cloud Messagingで大きなビュー通知を表示

アプリがバックグラウンドのときにビッグビュー通知を表示するにはどうすればよいですか? FirebaseMessagingServiceさんonMessageReceivedにカスタム通知を作成すると、このfaqに応じて可能ではないようだ。

あなたのアプリがバックグラウンドで動作している場合は、通知メッセージはシステムトレイに表示され、onMessageReceivedが呼び出されません。データペイロードを含む通知メッセージの場合は、通知メッセージがシステムトレイに表示され、通知メッセージに含まれていたデータは、通知をタップすると起動されたインテントから取得できます。

+1

アプリがバックグラウンドにあるときにトリガーすることができます。***もしあなたが 'data' * only *メッセージのペイロードを使用していれば***です。送信するメッセージペイロードに応じた動作については、[メッセージ処理のドキュメント](https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages)を参照してください。 –

答えて

1

データオブジェクトを使用して通知する通知を送信します。基本的には、データオブジェクトに必要なものをすべて入れ、常にonMessageReceivedメソッドで受け取ることができます。ここに例があります。

public class AppFireBaseMessagingService extends FirebaseMessagingService { 

    private final static int REQUEST_CODE = 1; 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     Map<String, String> data = remoteMessage.getData(); 
     if (data == null) return; 

     if (data.containsKey("title") && data.containsKey("message")) { 
      showNotification(data.get("title"), data.get("message")); 
     } 
    } 

    private void showNotification(String title, String body) { 
     NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
       .setContentTitle(title) 
       .setSmallIcon(R.drawable.notification_icon); 

     if (body != null && !body.isEmpty()) { 
      builder.setStyle(new NotificationCompat.BigTextStyle().bigText(body)); 
      builder.setContentText(body); 
     } 

     Intent intent = new Intent(this, MainActivity.class); 
     PendingIntent contentIntent = PendingIntent.getActivity(this, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

     builder.setContentIntent(contentIntent); 
     builder.setAutoCancel(true); 

     NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     Notification n = builder.build(); 
     n.defaults = Notification.DEFAULT_ALL; 
     notificationManager.notify(0, n); 
    } 

} 
関連する問題