我正在使用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()不能获得多个参数。
谢谢。
答案 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
)
));