Laravel中的Push通知中传递了额外的数据

时间:2018-08-03 06:28:23

标签: laravel laravel-5.3

我正在使用Laravel 5.3。我想在推送通知中发送一些额外的数据。

我正在使用 davibennun / laravel-push-notification

代码

public function sendPushToUser($user_id, $push_message,$msg_type = "chat"){

    try{

        $user = User::findOrFail($user_id);

        if($user->device_token != ""){

            if($user->device_type == 'ios'){

                return \PushNotification::app('IOSUser')
                    ->to($user->device_token)
                    ->send($push_message);

            }elseif($user->device_type == 'android'){

                return \PushNotification::app('AndroidUser')
                    ->to($user->device_token)
                    ->send($push_message);

            }
        }

    } catch(Exception $e){
        return $e;
    }

}

我想通过 $ push_message 传递 $ msg_type

将来,可能会在Notification中传递更多数据。那么我该如何传递。

send()不能获得多个参数。

谢谢。

1 个答案:

答案 0 :(得分:1)

通过查看code,send方法具有一个选项参数:

function send($message, $options = array()) {
   $push = new Push($this->adapter, $this->addressee, ($message instanceof Message) ? $message : new Message($message, $options));
   ....
}

因此,您可以发送与Message对象相同的选项数组:

$message = PushNotification::Message('Message Text',array(
    'badge' => 1,
    'sound' => 'example.aiff',

    'actionLocKey' => 'Action button title!',
    'locKey' => 'localized key',
    'locArgs' => array(
        'localized args',
        'localized args',
    ),
    'launchImage' => 'image.jpg',

    'custom' => array('custom data' => array(
        'we' => 'want', 'send to app'
    ))
));

因此您可以使用:

\PushNotification::app('AndroidUser')
                ->to($user->device_token)
                ->send($push_message, array(
                  'custom' => array(
                    'custom_data1' => VALUE,
                    'custom_data2' => VALUE
                   )
                 ));