0

FCM을 통해 laravel-push-notifications 프레임 워크를 사용하여 푸시 알림을 전달하는 Laravel API가 있습니다. 내 로컬 호스트에서 데이터 페이로드로 메시지를 받지만 메시지가 수신되면 프로덕션 모드에서 동일한 코드가 페이로드 null을 반환합니다. FCM을 위임 메소드가 호출 내 안드로이드 응용 프로그램에서Laravel 프로덕션 API의 FCM 페이로드 null

public static function sendPushNotification($deviceToken, $actionId, $text) { 
    $deviceToken = (string) $deviceToken; 

    try { 
     $message = \PushNotification::Message($text, array(
        'badge' => 1, 
        'sound' => 'default', 
        'content-available' => 1, 
        'custom' => array(
         'registerID' => 'teste', 
         'fromAPI' => true, 
         'action' => $actionId 
        ), 
        'payload' => array(
         'notification' => array(
          'action' => $actionId, 
          'title' => $text 
         ), 
        ), 
     )); 


     if (strlen($deviceToken) > 64) { 
      $returnAndroid = \PushNotification::app('appJurAndroid') 
        ->to($deviceToken) 
        ->send($message); 
     } else { 
      $returnIos = \PushNotification::app('appJurIOS') 
        ->to($deviceToken) 
        ->send($message); 
     } 

    } catch (AdapterException $e) { 
     Log::error("Push notification failure: {$e->getMessage()}"); 
    } 
} 

, :

public void onMessageReceived(RemoteMessage remoteMessage) 

remoteMessage.getData() 또는 remoteMessage

이 푸시 알림을 보낼 수 Laravel의 방법이다. getNotification()가 null입니다.

답변

0

custompayload 부분을 datanotification으로 바꿉니다.

현재 귀하의 페이로드는 다음과 같이 보일 것이다 :

{ 
    'badge': 1, 
    'sound': 'default', 
    'content-available': 1, 
    'custom' : { 
     'registerID': 'teste', 
     'fromAPI': true, 
     'action': $actionId 
    }, 
    'payload': { 
     'notification': { 
      'action': $actionId, 
      'title': $text 
      } 
    } 
} 

그것은 은 다음과 같아야합니다

{ 
    'badge': 1, 
    'sound': 'default', 
    'content_available': true, 
    'data' : { 
     'registerID': 'teste', 
     'fromAPI': true, 
     'action': $actionId 
    }, 
    'notification': { 
      'action': $actionId, 
      'title': $text 
    } 
} 

또한 내가 올바른 형식 인 content_availablecontent-available를 대체 것을 알 수 있습니다. AFAIK, content_available은 iOS 클라이언트로 전송되는 페이로드에만 사용됩니다.

매개 변수에 대한 안내는 Message TypesFCM HTTP Protocol을 참조하십시오.