laravel框架使用极光推送消息操作示例(2)
创建完后,我们就可以在项目中调用 JPushService::pushNotify() 来推消息了。
JPushService::pushNotify([ //标题 'title' => '测试', //内容 'content' => '测试', //设备标识,跟设备相关 'reg_id' => 'xxxxxxxxxxx', //扩展字段 'extras' => [ 'key' => 'value', ], //推送类型 'type' => JPushService::PUSH_TYPE_REG_ID, ]);
reg_id是前端安卓或IOS获取到后,传给PHP后端,然后跟用户关联,存起来。
注意,reg_id是跟设备相关的,同一个设备上的APP,当不同用户登陆时,reg_id是一样的,这样会导致一个问题。
A用户登APP后,又切换到B用户,那B用户会收到发送给A用户的消息,这会造成消息错乱。
解决方法:
通过别名来发送消息,因为一个设备只能绑定一个别名,当A用户登陆时,把 reg_id 绑定到别名 user_a,切换用户或退出时,就把别名置空。
然后B用户登陆,就把 reg_id 绑定到 user_b 上。推消息时,就通过别名来推送消息。
绑定别名(推荐使用用户ID来区分不同的别名):
JPushService::updateAlias($user->jpush_reg_id, 'user_id_' . $user->id);
置空别名:
JPushService::updateAlias($user->jpush_reg_id, '');
通过别名发送:
JPushService::pushNotify([ 'title' => '测试', 'content' => '测试', 'alias' => 'user_id_' . $message->receive_id, 'extras' => $extras, 'type' => JPushService::PUSH_TYPE_ALIAS, ]);
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。