1.引入jpush包,直接引入autoload文件即可:
require BASEPATH.'/vendor/jpush/jpush/autoload.php';
2.
use JPush\Client;
3.初始化JPushClient,传入参数app_key,master_secret,log路径:
$client = new Client($jkey, $jsecret,$root.'/logs/jpush.log');
$push = $client->push();
4.
$push->setPlatform('all');
5.若广播消息的话使用:
$push->addAllAudience();
6.若使用别名的话使用:
$push->addAlias($audience);
7.ios端推送设置,$ios_notification为数组,数组的键支持’sound’, ‘badge’, ‘content-available’, ‘mutable-content’, category’, ‘extras’ 中的一个或多个,示例:
['sound' => 'sound','badge' => '+1','extras' => ['key' => 'value'];
,参数说明:
参数 | 说明 |
---|---|
alert | 表示通知内容,会覆盖上级统一指定的 alert 信息;默认内容可以为空字符串,表示不展示到通知栏, 支持字符串和数组两种形式 |
sound | 表示通知提示声音,默认填充为空字符串 |
badge | 表示应用角标,把角标数字改为指定的数字;为 0 表示清除,支持 ‘+1’,’-1’ 这样的字符串,表示在原有的 badge 基础上进行增减,默认填充为 ‘+1’ |
content-available | 表示推送唤醒,仅接受 true 表示为 Background Remote Notification,若不填默认表示普通的 Remote Notification |
mutable-content | 表示通知扩展, 仅接受 true 表示支持 iOS10 的 UNNotificationServiceExtension, 若不填默认表示普通的 Remote Notification |
category | IOS8才支持。设置 APNs payload 中的 ‘category’ 字段值 |
extras | 表示扩展字段,接受一个数组,自定义 Key/value 信息以供业务使用 |
$push->iosNotification($msg['title'], $ios_notification);
8.android端推送设置,$android_notification为数组,数组的键支持’title’, ‘builder_id’, ‘priority’, ‘category’, ‘style’, ‘alert_type’, ‘big_text’, ‘inbox’, ‘big_pic_path’, ‘extras’ 中的一个或多个,示例:
['title' => $msg['title'],'builder_id' => 0,'style' => 0,'alert_type' => '-1','extras' => $extras];
,参数说明:
参数 | 说明 |
---|---|
alert | 表示通知内容,会覆盖上级统一指定的 alert 信息;默认内容可以为空字符串,表示不展示到通知栏 |
title | 表示通知标题,会替换通知里原来展示 App 名称的地方 |
builder_id | 表示通知栏样式 ID |
priority | 表示通知栏展示优先级,默认为 0,范围为 -2~2 ,其他值将会被忽略而采用默认值 |
category | 表示通知栏条目过滤或排序,完全依赖 rom 厂商对 category 的处理策略 |
style | 表示通知栏样式类型,默认为 0,还有1,2,3可选,用来指定选择哪种通知栏样式,其他值无效。有三种可选分别为 bigText=1,Inbox=2,bigPicture=3 |
alert_type | 表示通知提醒方式, 可选范围为 -1~7 ,对应 Notification.DEFAULT_ALL = -1 或者 Notification.DEFAULT_SOUND = 1, Notification.DEFAULT_VIBRATE = 2, Notification.DEFAULT_LIGHTS = 4 的任意 “or” 组合。默认按照 -1 处理。 |
big_text | 表示大文本通知栏样式,当 style = 1 时可用,内容会被通知栏以大文本的形式展示出来,支持 api 16 以上的 rom |
inbox | 表示文本条目通知栏样式,接受一个数组,当 style = 2 时可用,数组的每个 key 对应的 value 会被当作文本条目逐条展示,支持 api 16 以上的 rom |
big_pic_path | 表示大图片通知栏样式,当 style = 3 时可用,可以是网络图片 url,或本地图片的 path,目前支持 .jpg 和 .png 后缀的图片。图片内容会被通知栏以大图片的形式展示出来。如果是 http/https 的 url,会自动下载;如果要指定开发者准备的本地图片就填 sdcard 的相对路径,支持 api 16 以上的 rom |
extras | 表示扩展字段,接受一个数组,自定义 Key/value 信息以供业务使用 |
$push->androidNotification($msg['title'], $android_notification);
9.设置消息,$message为数组,数组的键支持 ‘title’, ‘content_type’, ‘extras’ 中的一个或多个
['title' => 'Hello','content_type' => 'text','extras' => ['key' => 'value']];
,参数说明:
参数 | 说明 |
---|---|
msg_content | 消息内容本身 |
title | 消息标题 |
content_type | 消息内容类型 |
extras | 表示扩展字段,接受一个数组,自定义 Key/value 信息以供业务使用 |
$push->message($msg['content'], $message);
10.发送:
$push->send();