1. 程式人生 > 其它 >極光推送

極光推送

目錄

極光推送

介紹:

極光推送支援 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)

  • 客戶端 (客戶端 SDK 下載有兩種方法第一種就是本連結、還有一種方法就是建立好應用後到設定裡面指定證書等後下載)

    當然我沒有下載客戶端的,客戶端具體怎麼實現的也不清楚了。

使用示例

使用平臺:IOS、Android

訊息型別:通知欄訊息、自定義訊息、應用內訊息

Android 通知樣式需要前臺設定模板 服務端使用 channel_id 繫結

使用 PHP SDK 需要注意放的位置,放到 extend 裡面需要修改 use 引入的方式,不然會報找不到類的錯誤資訊;

/**
 * @param $title  string 標題
 * @param $msg    string 訊息內容
 * @param $params array  設定引數
 * @param $registration_id array 註冊 IDs
 */
function morePush($title = '',$msg = '', $params = [], $registration_id = [])
{
    require_once EXTEND_PATH."/jpush/src/JPush/Client.php";
    $config = config('jpush');

    $client = new JPush\Client($config['appKey'], $config['masterSecret'], null,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;
    }
}