c# .netcore3.1 unipush(個推)服務端開發筆記


推送消息 c# .netcore3.1 unipush(個推)前后端開發筆記

一、前端:

1、獲取cid,在APP登錄頁面加入如下代碼,保存到數據庫,以備服務端調用

this.mycid=plus.push.getClientInfo().clientid;

2、在app.vue中的onLaunch方法里加入如下代碼

// #ifdef APP-PLUS
            let timer = false;
            //從系統消息中心點擊消息啟動應用事件
            plus.push.addEventListener("click",(msg)=>{
                clearTimeout(timer);
                timer = setTimeout(()=>{
                    if(msg.payload){
                        uni.navigateTo({
                            url:msg.payload
                        })
                    }
                },1500)
            },false)
            //應用從推送服務器接收到推送消息事件
            plus.push.addEventListener("receive",(msg)=>{
                if("LocalMSG" == msg.payload){
                }else{
                    if(msg.type=='receive'){
                        var options = {cover:false,title:msg.title};
                        plus.push.createMessage(msg.content, msg.payload, options); 
                     }  
                }
            },false)
            // #endif

3、manifest.json/App模塊配置/push(消息推送),選中uniPush,然后點擊【配置】進入【開發者中心】

 

***注意:后面用到的appid等是上圖所示,不是個推的appid

二、服務端

1、登錄個推官網,文檔中心,主要看RestAPI V2,根據這個文檔生成代碼(可以用postman軟件調試,可以自動生成C#代碼,稍加改動即可)

2、獲取token(主要看【鑒權API】)

  獲取token要注意的地方是:獲取當前的時間戳,是格林威治時間的時間戳,而不是北京時間的時間戳,token的有效期為24小時

  格式如下:

{"sign":"xxxxxxxxxxxxxxxxxxxxxxx","timestamp":"1646774804760","appkey":"xxxxxxxxxx"}

 

3、創建消息(主要看【推送API】我采用的是【toList】創建消息)

  生成消息,返回taskid;這部分最重要,也最復雜,只說容易出錯的地方,其他請仔細閱讀開發文檔

  全路徑名稱:io.dcloud.PandoraEntry

  廠商推送消息參數:push_channel 必須有,否則服務端推送成功,APP收不到消息

{
    "request_id":"4023052754555868195",
    "group_name":"xxxxx",
    "settings":
    {
        "ttl":3600000,
        "strategy":{
            "default":1
        }
    },
    "push_message":
    {
        "notification":
        {
            "title":"信息標題",
            "body":"信息內容",
            "click_type":"intent",
            "intent":"intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=你的APP包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title='xxxx';S.content='xxxxx';S.payload='xxx';end"
        }
    },
    "push_channel":
    {
        "android":
        {
            "ups":
            {
                "notification":
                {
                    "title":"信息標題",
                    "body":"信息內容",
                    "click_type":"intent",
                    "intent":"intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=你的APP包名/io.dcloud.PandoraEntry;SUP-OL-SU=true;S.title='xxxx';S.content='xxxx';S.payload='xxx';end"
                },
                "options":
                {
                    "HW":
                    {
                        "/message/android/notification/badge/class": "io.dcloud.PandoraEntry",
                        "/message/android/notification/importance": "HIGH", 
                        "/message/android/notification/badge/add_num": 1
                    },
                    "VV":
                    {
                        "/classification": 0
                    }
                }
            }
        }
    }
}

 

4、推送消息(主要看【推送API】我采用的是【toList】執行cid批量推)

  格式如下:

{"audience":{"cid":["xxxxxxxxxxxxxxxxx"]},"taskid":"RASL_0313_xxxxxxxxxxxxxxxxxxxxxxxxx","is_async":false}

 

以上配置好后,可以測試了,服務端發送消息,APP在線時就可以收到消息了

三、離線推送的實現方法:

  需要配置廠商參數(以華為為例)

1、華為開發者中心,創建應用(不必上架,只要能得到:包名、appid、secretkey即可)

2、【我的項目】中需要填的內容:

  【項目設置】  

    【常規】數據處理位置、下載agconnect-services.json備用、SHA256證書指紋

    【API管理】打開推送服務

  【推送服務】【配置】開通:項目回執狀態

3、dcloud開發者中心,【廠商推送設置】【華為】把上面兩步得到的參數填上即可

要注意:

  1、【消息推送】【配置管理】【故障排查】【一鍵檢測】里的DeviceToken是否為空,離線配置成功應該有內容的

  2、通知開關要打開,在手機上設置

為了節約篇幅,只記錄了重點步驟,還需要多看開發文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM