极光推送

极光推送

介绍:

极光推送支持 Android、iOS、QuickApp、Web 等平台,SDK 接入方便快捷,推送通道高速稳定且支持海外专线,API 开放接口强大、灵活和易用、WEB 端支持创建通知、后效分析、标签别名管理和故障排查等运营功能。极光推送(JPush)在为开发者提供基础推送服务的同时,还提供了用户精准标签、用户分群、地理围栏、应用内消息、智能发送策略、智能时机、智能促活等服务能力,可有效提升消息的送达率、展示率和点击率,通过精细化运营触达助力 APP 提升日活和留存。

支持类型

平台类型支持

平台类型 Android iOS QuickApp Web Winphone Windows Mac
支持情况 支持 支持 支持 支持(私有云) 支持 支持(私有云) 支持(私有云)

消息类型支持

消息类型 通知栏消息 自定义消息 应用内消息 地理围栏消息 通知栏 + 自定义消息 自定义消息转通知栏消息 应用内提醒消息
支持情况 支持 支持 支持 支持 支持 支持 支持

通知样式支持

通知样式 默认样式 缩略图样式 大图样式 文本样式 收件箱样式 自定义样式
支持情况 支持 支持 支持 支持 支持 支持

SDK 能力支持

SDK/ 插件项 功能描述
Android SDK JPush Android SDK 是极光推送为 Android 平台开发的 SDK,作为 Android Service 运行在后台,接收并处理服务端推送的通知消息。
iOS SDK JPush iOS SDK 是极光推送为 iOS 平台开发的 SDK,使用官方推送通道作为 iOS Service 运行在后台,接收并处理服务端推送的通知消息。
服务端 SDK JPush 服务端所提供 PUSH 后台服务 SDK,包含 Java、Python、PHP、Ruby、C# 和 Node.js,发布在 GitHub 上。
客户端插件 JPush 提供主流的开发工具集成插件,包含 Flutter、Uniapp、React Native 和 Cocos2d-x 等,发布在 GitHub 上。

SDK 地址

  • 服务端 (包含了:Java、Python、PHP、Ruby、C、Node.js 等SDK)
    或者 composer require jpush/jpush

  • 客户端 (客户端 SDK 下载有两种方法第一种就是本链接、还有一种方法就是创建好应用后到设置里面指定证书等后下载)

    当然我没有下载客户端的,客户端具体怎么实现的也不清楚了。

使用示例

使用平台:IOS、Android

消息类型:通知栏消息、自定义消息、应用内消息

Android 通知样式需要前台设置模板 服务端使用 channel_id 绑定

/**
 * @param $title  string 标题
 * @param $msg    string 消息内容
 * @param $params array  设定参数
 * @param $registration_id array 注册 IDs 为空时推送全部设备
 */
function morePush($title = '',$msg = '', $params = [], $registration_id = [])
{
    $config = config('jpush');

    $client = new JPush\Client($config['appKey'], $config['masterSecret'], LOG_PATH . 'JPush.log',10);

    try {
        $response = $client->push()
            ->setPlatform(array('ios', 'android'))
            // 一般情况下,关于 audience 的设置只需要调用 addAlias、addTag、addTagAnd  或 addRegistrationId
            // 这四个方法中的某一个即可,这里仅作为示例,当然全部调用也可以,多项 audience 调用表示其结果的交集
            // 即是说一般情况下,下面三个方法和没有列出的 addTagAnd 一共四个,只适用一个便可满足大多数的场景需求

            // ->addAlias('alias')
            // ->addTag(array('tag1', 'tag2'))
            ->addRegistrationId($registration_id)
            // 设置推送设备
            // ->addAllAudience('all')

            //  message 与 notification 一起二者必须有其一,可以二者并存。
            // 所有平台推送相同的 alert 消息
            ->setNotificationAlert('alert')
            // IOS 平台消息
            ->iosNotification([
                'title' => $title,
                'body' => $msg
            ], array(
                'sound' => 'jpush.caf',
                'badge' => '+1',
                'content-available' => true,
                'mutable-content' => true,
                'extras' => $params,
            ))
            // 安卓平台消息
            ->androidNotification($title, array(
                'title' => $title,
                'alert' => $msg,
                'sound' => '',
                'extras' => $params,
                'style' => 1,
                // 'big_text' => '',
                // 通知类型 可选范围为 -1~7 ,默认按照 -1 处理。 即0111二进制,左数第二位代表 light,第三位代表 vibrate,第四位代表 sound。 0:不生效,1:生效
                'alert_type' => '1111',
                // 图标 小角标 +1
                'badge_add_num' => 1,
                // 华为小角标 +1 需要加包名
                'badge_class' =>'com.example.xinenhuadaka'
            ))
            // ->message($msg, array(
            //     'title' => $title,
            //     'msg_content' => $msg,
            //      'content_type' => 'text',
            //     'extras' => $params,
            // ))
            ->options(array(
                // sendno: 表示推送序号,纯粹用来作为 API 调用标识,
                // API 返回时被原样返回,以方便 API 调用方匹配请求与返回
                // 这里设置为 100 仅作为示例

                'sendno' => 100,

                // time_to_live: 表示离线消息保留时长(秒),
                // 推送当前用户不在线时,为该用户保留多长时间的离线消息,以便其上线时再次推送。
                // 默认 86400 (1 天),最长 10 天。设置为 0 表示不保留离线消息,只有推送当前在线的用户可以收到
                // 这里设置为 1 仅作为示例

                'time_to_live' => 10,

                // apns_production: 表示APNs是否生产环境,
                // True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送开发环境

                'apns_production' => false,

                // big_push_duration: 表示定速推送时长(分钟),又名缓慢推送,把原本尽可能快的推送速度,降低下来,
                // 给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
                // 这里设置为 1 仅作为示例

                // 'big_push_duration' => 1
            ))
            // 已弃用
            // ->setSmsMessage(array(
            //     'delay_time' => 60,
            //     'signid' => 154,
            //     'temp_id' => 1,
            //     'temp_para' => array(
            //         'code' => 357
            //     ),
            //     'active_filter' => false
            // ))

            // custom可自定义最外层参数,如skd未支持部分文档功能,用户可自行写入
            // 这里仅作为例子展示
            // ->custom(array(
            //     'sms_message' => array(
            //         'active_filter' => false,
            //         'delay_time' => 60,
            //         'signid' => 154,
            //         'temp_id' => 1,
            //         'temp_para' => array(
            //             'code' => 357
            //         )),
            //     'options' => array(
            //         'apns_production' => false,
            //         'time_to_live' => 62000,
            //     )
            // ))
            ->send();
        return $response;
    } catch (\JPush\Exceptions\APIConnectionException $e) {
        return $e;
    } catch (\JPush\Exceptions\APIRequestException $e) {
        return $e;
    }
}
posted @ 2022-03-18 20:26  孤陌  阅读(646)  评论(0编辑  收藏  举报