极光推送php demo,PHP之极光推送DEMO并解决异常报错终止程序的问题

在写API的时候,经常需要给客户端发送通知,这时候我们需要接入极光推送,后端发送请求到极光,极光再根据服务端发送的数据,推送到相应的设备。

安装方法:

composer require jpush/jpush

代码封装:

/**

* 极光推送

* @param string $title 推送标题

* @param string $message 推送消息

* @param string $users 要推送的用户,[]全推

* @param string $tag tag,客户端用于区分的页面

* @param string $extras 传递给客户端的扩展参数

*/

if(!function_exists('jPush')){

function jPush($title, $message, $users=[], $tag=1, array $extras=[]){

if(!$title || !$message || !$users){

return false;

}

//是否全推,all:全推

$pushAll = false;

if(!$users){

$pushAll = true;

}

//推送用户转为数组

if(!is_array($users)){

$users = explode(",", $users);

}

foreach ($users as $key => $user){

$users[$key] = (string)$user;

}

$config = get_config('jpush');

$appKey = $config['jpush_appkey'];

$secret = $config['jpush_secret'];

//JPush

$client = new \JPush\Client($appKey, $secret ,null);//第三个参数null,可解决极光推送抛出异常终止程序运行的问题

$cliObj = $client->push()

->setPlatform(['android', 'ios']);

if($pushAll){

$cliObj = $cliObj->addAllAudience();//全推

}else{

$cliObj = $cliObj->addTag($users);//群推

}

$response = $cliObj->androidNotification($message, [

'title' => $title,

'extras' => [//自定义

'eventTag' => $tag,

'data_'.$tag => $extras

]

])

->iosNotification($message, [

'badge' => '+1',

'extras' => [//自定义

'eventTag' => $tag,

'data_'.$tag => $extras

]

])

->options(['apns_production'=>true]);

try {

$response->send();

} catch (\JPush\Exceptions\JPushException $e) {

return false;

}

return $response;

}

}

调用方法:

jPush('咨询来了', '您有一个新的咨询请求,请您查收!', [], 99, ["content"=>""]);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值