Laravel FCM通过brozot/Laravel-FCM发送推送通知,在Android上运行正常,但在iOS上无法工作。

5

即使是iOS设备也可以从FCM控制台接收通知。

控制器函数:

public function push(Request $request)
{
    $validator = Validator::make($request->all(), [
        'title' = > 'required',
            'body' = > 'required',
            'token' = > 'required',
            'type' = > 'required',
            'id' = > 'required',

    ]);

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    $title = $request['title'];
    $body = $request['body'];
    $type = $request['type'];
    $id = $request['id'];
    $dataarray = array(
        "id" = >$id,
        "type" = >$type,
        'title' = >$title,
        'body' = >$body,
        'image' = >'321451_v2.jpg',
    );

    $token = $request['token'];

    return $push = Push::sendpush($title, $body, $dataarray, $token);

}

push model function :
public static function sendpush($title, $body, $dataarray, $token)
{


    $optionBuiler = new OptionsBuilder();
    $optionBuiler->setTimeToLive(60 * 20);

    $notificationBuilder = new PayloadNotificationBuilder($title);
    $notificationBuilder->setBody($body)
        ->setSound('');

    $dataBuilder = new PayloadDataBuilder();
    $dataBuilder->addData($dataarray);

    $option = $optionBuiler->build();
    $notification = $notificationBuilder->build();
    $data = $dataBuilder->build();

    $token = $token;

    $downstreamResponse = FCM::sendTo($token, $option, $notification, $data);

    return new JsonResponse(array('status' = >'1', 'sucess' = >$downstreamResponse->numberSuccess(), 'fail' = > $downstreamResponse->numberFailure(), 'msg' = >$downstreamResponse->tokensWithError()), 200);

}

Response:
{
    "status": "1",
    "sucess" : 0,
    "fail" : 1,
    "msg" : []
}
2个回答

0

如果你试着使用iOS模拟器,是不会起作用的。你需要使用一些工具像testflight或真实设备进行测试。

我们能在模拟器中检查推送通知吗?


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接