• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            極光推送(極光推送官網(wǎng))

            更新時間:2023-02-28 21:50:35 閱讀: 評論:0

            極光推送總結(jié)

            應(yīng)用場景:在我們的項目中我們用的是創(chuàng)建視頻會議和預(yù)警消息通知推送這兩種情況,首先創(chuàng)建視頻會議和中途邀請人參加會議我采用的是自定義推送消息,因為此應(yīng)用場景傳遞的參數(shù)比較多,在推送過去之后android和ios可以很方便的將參數(shù)傳遞過去,但是我們考慮到邀請的所有人都在登錄狀態(tài)的時候才可以創(chuàng)建會議房間,我們采用的是騰訊視頻會議的sdk,因為我們采用的是別名推送,當(dāng)用戶在登錄的時候安卓端將用戶uuid設(shè)置為別名,退出時取消別名,我在服務(wù)端根據(jù)傳遞過來的uuid利用別名查詢registration_ids的數(shù)組大小是否為空判斷當(dāng)前用戶是否設(shè)置別名,當(dāng)邀請的所有人都設(shè)置了別名之后我才調(diào)用創(chuàng)建會議房間的接口。而預(yù)警消息推送我采用的是通知推送,當(dāng)氣象預(yù)警觸發(fā)的時候我會采用通知推送的方式推送給app,這種方式比較簡單。

            極光推送是給app推送消息的,我們首先需要在服務(wù)端集成maven依賴

            <!-- 極光推送 -->

                <groupId>cn.jpush.api

                <artifactId>jpush-client

                <version>3.2.3

            </dependency>

            接著我們需要了解極光推送有哪些推送方式,對于安卓和ios都適用的情況,我在項目中使用的是別名推送alias,(還有標(biāo)簽推送tag),推送方式又分為通知推送和自定義推送,通知推送能夠顯示在手機(jī)提示框中,而自定義推送卻不能,我看安卓他們做的能跟微信視頻一樣的彈出一個會話框,看著挺不錯的,這跟微信不同的是可以邀請多個,之前用阿里云的好像只能一對一,所以才換成騰訊視頻會議的,好了,廢話不多說,上我寫的一個工具類,

            package com.jpxx.homepage.homePage.rvice.utils;

            import cn.jpush.api.JPushClient;

            import cn.jpush.api.push.PushResult;

            import cn.jpush.api.push.model.Options;

            import cn.jpush.api.push.model.Platform;

            import cn.jpush.api.push.model.PushPayload;

            import cn.jpush.api.push.model.audience.Audience;

            import cn.jpush.api.push.model.notification.Notification;

            import cn.jpush.api.push.model.Message;

            import cn.jpush.api.push.model.PushPayload.Builder;

            public class SendMessageUtils {

            private static StringAppKey="8a7880c6fb81ad494b224078";

                /**

                * JPush MasterSecret 極光推送平臺生成的密鑰

                */

                private static StringMasterSecret="c0fc675c4c48f9bf35269cf4";

                //兩個參數(shù)分別填寫你申請的masterSecret和appKey

                private static JPushClientjPushClient=new JPushClient(MasterSecret,AppKey);

                /**

                * 通知推送

                * 備注:推送方式不為空時,推送的值也不能為空;推送方式為空時,推送值不做要求

                * @param type 推送方式:1、“tag”標(biāo)簽推送,2、“alias”別名推送

                * @param value 推送的標(biāo)簽或別名值

                * @param alert 推送的內(nèi)容

                */

                public static StringpushNotice(String type,String title,String value,String alert,int roomId,String MessageType,String name,String promoterAdavter,String meetingTitle,String sig){

            Builder builder= PushPayload.newBuilder();

                    builder.tPlatform(Platform.all());//設(shè)置接受的平臺,all為所有平臺,包括安卓、ios、和微軟的

                    //設(shè)置如果用戶不在線、離線消息保存的時間

                    Options options=Options.ndno();

                    options.tTimeToLive(86400l);    //設(shè)置為86400為保存一天,如果不設(shè)置默認(rèn)也是保存一天

                    builder.tOptions(options);

                    builder.tMessage(Message.newBuilder()

            .tMsgContent(value)

            .tTitle(title)

            .addExtra("roomId",roomId)

            .addExtra("MessageType",MessageType)

            .addExtra("name",name)

            .addExtra("promoterAdavter",promoterAdavter)

            .addExtra("meetingTitle",meetingTitle)

            .addExtra("urSig",sig)

            .build());

                    //設(shè)置推送方式

                    if(type.equals("alias")){

            builder.tAudience(Audience.alias(value));//根據(jù)別名推送

                    }el if(type.equals("tag")){

            builder.tAudience(Audience.tag(value));//根據(jù)標(biāo)簽推送

                    }el{

            builder.tAudience(Audience.all());//Audience設(shè)置為all,說明采用廣播方式推送,所有用戶都可以接收到

                    }

            //設(shè)置為采用通知的方式發(fā)送消息

                    builder.tNotification(Notification.alert(alert));

                    PushPayload pushPayload=builder.build();

                    System.out.println("ggggggg"+pushPayload);

                    try{

            //進(jìn)行推送,實際推送就在這一步

                        //System.out.println("zzzzzzzzz "+jPushClient.ndPush(pushPayload));

                        PushResult pushResult=jPushClient.ndPush(pushPayload);

                        return "success";

                    }catch(Exception e){

            System.out.println("異常 "+e);

                        e.printStackTrace();

                        return "fail";

                    }

            }

            /**

                * 自定義消息推送

                * 備注:推送方式不為空時,推送的值也不能為空;推送方式為空時,推送值不做要求

                * @param type 推送方式:1、“tag”標(biāo)簽推送,2、“alias”別名推送

                * @param value 推送的標(biāo)簽或別名值

                * @param alert 推送的內(nèi)容

                */

                public static StringpushMsg(String type,String title,String value,String alert,int roomId,String MessageType,String name,String promoterAdavter,String meetingTitle,String sig){

            Builder builder= PushPayload.newBuilder();

                    builder.tPlatform(Platform.all());//設(shè)置接受的平臺

                    if(type.equals("alias")){

            builder.tAudience(Audience.alias(value));//別名推送

                    }el if(type.equals("tag")){

            builder.tAudience(Audience.tag(value));//標(biāo)簽推送

                    }el{

            builder.tAudience(Audience.all());//Audience設(shè)置為all,說明采用廣播方式推送,所有用戶都可以接收到

                    }

            Message.Builder newBuilder=Message.newBuilder();

                    newBuilder.tMsgContent(alert);//消息內(nèi)容

                    newBuilder.tTitle(title);

                    newBuilder.addExtra("roomId",roomId);

                    newBuilder.addExtra("MessageType",MessageType);

                    newBuilder.addExtra("name",name);

                    newBuilder.addExtra("promoterAdavter",promoterAdavter);

                    newBuilder.addExtra("meetingTitle",meetingTitle);

                    newBuilder.addExtra("urSig",sig);

                    Message message=newBuilder.build();

                    builder.tMessage(message);

                    PushPayload pushPayload=builder.build();

                    try{

            PushResult pushResult=jPushClient.ndPush(pushPayload);

                        System.out.println(pushResult.isResultOK());

                        return "success";

                    }catch(Exception e){

            e.printStackTrace();

                        return "fail";

                    }

            }

            public static void main(String[] args) {

            //給標(biāo)簽為kefu的用戶進(jìn)行消息推送

                    //SendMessageUtils.pushMsg("alias","標(biāo)題","5b9022746e284ea0992e3baa983035dc","你有新的任務(wù),請及時處理",111,"meetingType","name","avater","meetingTitle","");

            //ndNotificationWirhAlias_Ios("zzzzzzzzzzzz","uuid");

                    //String result = SendMessageUtils.pushNotice("alias","標(biāo)題","5b9022746e284ea0992e3baa983035dc","你有新的任務(wù),請及時處理",111,"meetingType","name","avater","meetingTitle","");

                    //System.out.println("返回結(jié)果"+result);

                    /*String result = SendMessageUtils.pushNotice("alias","預(yù)警標(biāo)題","5b9022746e284ea0992e3baa983035dc","dddd",0,"warnType","","","","");  //urDto.getUuId()

            System.out.println("result "+result);*/

                    //根據(jù)uuid查詢別名信息是否存在

                    String result = HttpRequestUtil.JGUtil("https://device.jpush.cn/v3/alias/5b9022746e284ea0992e3baa983035dc", "8a7880c6fb81ad494b224078","c0fc675c4c48f9bf35269cf4");//get請求

                    //String result = HttpRequestUtil.interfaceUtil("http://172.16.2.207:6606/daibancontroller.do?getDbxxNum", "","ydswtapp","eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ7XCJjbGllbnRJZFwiOlwieWRzd3RhcHBcIixcImxvZ2luVGltZVwiOjE1NTYwMDY1NDU4MzksXCJ1c0lkXCI6MjM5OSxcInVzZXJSb2xlXCI6XCJBRE1JTlwiLFwidXVJZFwiOlwiNDAyODgxZTUzYzdmMGRkZTAxM2M3ZjI5ZWQ4ZTAwMTZcIn0iLCJpc3MiOiJhdXRoMCIsImV4cCI6MTg3MTM2NjU0NSwiaWF0IjoxNTU2MDA2NTQ1fQ.Cy3-eDD4OEYhJlldvtJsymALRVGwP466TmBrSQJQGUo");//get請求

                    System.out.println("result  "+result);

                }

            }

            因為我要根據(jù)前端傳來的uuid判斷當(dāng)前用戶是否登錄,所以我對http方法進(jìn)行了稍微改裝,根據(jù)極光的api文檔(文檔寫的不是很好找),以下是我改裝的

            /**

            *

            * 極光專用

            */

            public static StringJGUtil(String path,String appKey,String masterSecret) {

            String str ="";

                try {

            URL url =new URL(path);

                    //打開和url之間的連接

                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

                    PrintWriter out =null;

                    /**設(shè)置URLConnection的參數(shù)和普通的請求屬性****start***/

                    String ba64String=appKey+":"+masterSecret;

                    System.out.println("拼接的 "+ba64String);

                    String str2=ba64String;

                    String encode =new BASE64Encoder().encode(str2.getBytes());

                    System.out.println("編碼過后:"+encode);

                    String auth ="Basic "+encode;

                    System.out.println("最終的 "+auth);

                    conn.tRequestProperty("Authorization", auth);

                    conn.tRequestProperty("Content-Type", "application/json");

                    //conn.tRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                    conn.tRequestProperty("accept", "*/*");

                    conn.tRequestProperty("connection", "Keep-Alive");

                    conn.tRequestProperty("ur-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

                    /**設(shè)置URLConnection的參數(shù)和普通的請求屬性****end***/

                    //設(shè)置是否向httpUrlConnection輸出,設(shè)置是否從httpUrlConnection讀入,此外發(fā)送post請求必須設(shè)置這兩個

                    //最常用的Http請求無非是get和post,get請求可以獲取靜態(tài)頁面,也可以把參數(shù)放在URL字串后面,傳遞給rvlet,

                    //post與get的 不同之處在于post的參數(shù)不是放在URL字串里面,而是放在http請求的正文內(nèi)。

                    conn.tDoOutput(true);

                    conn.tDoInput(true);

                    conn.tRequestMethod("GET");//GET和POST必須全大寫

                    /**GET方法請求*****start*/

            /**

                    * 如果只是發(fā)送GET方式請求,使用connet方法建立和遠(yuǎn)程資源之間的實際連接即可;

                    * 如果發(fā)送POST方式的請求,需要獲取URLConnection實例對應(yīng)的輸出流來發(fā)送請求參數(shù)。

                    * */

                    conn.connect();

                    /**GET方法請求*****end*/

                    /***POST方法請求****start*/

                    /*out = new PrintWriter(conn.getOutputStream());//獲取URLConnection對象對應(yīng)的輸出流        out.print(data);//發(fā)送請求參數(shù)即數(shù)據(jù)        out.flush();//緩沖數(shù)據(jù)*/

                    /***POST方法請求****end*/

                    //獲取URLConnection對象對應(yīng)的輸入流

                    InputStream is = conn.getInputStream();

                    //構(gòu)造一個字符流緩存

                    BufferedReader br =new BufferedReader(new InputStreamReader(is));

                    while ((str = br.readLine()) !=null) {

            str =new String(str.getBytes(), "UTF-8");//解決中文亂碼問題

                        System.out.println("wwwww"+str);

                        return str;

                    }

            //關(guān)閉流

                    is.clo();

                    //斷開連接,最好寫上,disconnect是在底層tcp socket鏈接空閑時才切斷。如果正在被其他線程使用就不切斷。

                    //固定多線程的話,如果不disconnect,鏈接會增多,直到收發(fā)不出信息。寫上disconnect后正常一些。

                    conn.disconnect();

                    System.out.println("完整結(jié)束");

                }catch (Exception e) {

            e.printStackTrace();

                }

            return "success";

            }

            好了,以后再寫類似的就會寫了,這里附上極光文檔的鏈接 https://docs.jiguang.cn/jpush/rver/push/rver_overview/

            極光推送的極光推送服務(wù)優(yōu)勢

            極光推送服務(wù)具有如下的優(yōu)勢:
            1)完全開放注冊,免費向所有的開發(fā)者開放使用
            2)SDK流量電量消耗很少
            3)集成簡單,很快就能夠集成跑起來
            4)服務(wù)器端推送支持大并發(fā)量、延遲小
            5)豐富的富媒體推送功能
            6)通過極光推送APP的平均用戶活躍度提升了500%
            7)使用極光推送做運營,用戶留存率會提升2倍以上
            8)云端部署服務(wù)器超過2000臺


            極光推送服務(wù)是什么,極光推送怎么樣?

            極光推送,免費的第三方消息推送服務(wù)。
            優(yōu)勢:
            1) 開放注冊,免費向所有的開發(fā)者開放使用
            2)SDK流量電量消耗很少
            3)集成簡單,很快就能夠集成跑起來
            4)服務(wù)器端推送支持大并發(fā)量、延遲小

            本文發(fā)布于:2023-02-28 18:58:00,感謝您對本站的認(rèn)可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167759223548720.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。

            本文word下載地址:極光推送(極光推送官網(wǎng)).doc

            本文 PDF 下載地址:極光推送(極光推送官網(wǎng)).pdf

            上一篇:刷信譽(yù)
            下一篇:返回列表
            標(biāo)簽:極光   官網(wǎng)
            相關(guān)文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網(wǎng)旗下知識大全大全欄目是一個全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 亚洲不卡av不卡一区二区| 久久久这里只有精品10| 99热在线只有精品| 国产精品第一区亚洲精品| 亚洲精品www久久久久久| 午夜精品久久久久久久爽 | 亚洲一区二区视频在线观看| 亚洲毛片无码专区亚洲乱| 国产永久免费高清在线观看| 秋霞国产av一区二区三区| 中文字幕自拍偷拍福利视频| 久久一本人碰碰人碰| 亚洲婷婷综合色高清在线| 国产精品一区二区久久不卡| 国产成人综合亚洲AV第一页| 亚洲精品国模一区二区| 亚洲一区二区三区18禁| 人妻中文字幕av资源站| 久久亚洲av午夜福利精品一区| 日韩一区二区三区日韩精品| 芳草地社区在线视频| 中文字幕亚洲综合小综合| 青青草无码免费一二三区| 中文字幕在线国产有码| 美欧日韩一区二区三区视频| 欧美人与动牲交A免费观看| 亚洲精品成人无限看| 一个色的导航| 野花香视频在线观看免费高清版| 亚洲精品日产AⅤ| 国产尤物AV尤物在线看| 人妻少妇邻居少妇好多水在线| 波多野42部无码喷潮| 亚洲av永久无码精品网站| 亚洲国产成人综合一区二区三区 | 制服丝袜另类专区制服| 全部av―极品视觉盛宴| 国产午夜亚洲精品不卡网站| 国产亚洲精品视频中文字幕 | 色在线 | 国产| 美女禁区a级全片免费观看|