app消息推送

主要用的框架是mui+vue+jquery這些技術(shù)

到華為官方進(jìn)行配置一些參數(shù)

  1. SHA256 指紋
    image.png

    如果不知道的話點擊該鏈接
    https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-config-agc-0000001050170137

2.開通推送服務(wù)


image.png

開通以后

image.png

3.用開發(fā)者中心后臺Web頁面發(fā)送Push消息
具體操作參考下面鏈接
https://ask.dcloud.net.cn/article/35622
4.代碼中添加的app頁面中
需要注意的地方就是messageTitle、messageContent 在app頁面中用的是這個,在開發(fā)者中心后臺Web頁面發(fā)送Push消息也用這個。開發(fā)者中心后臺Web頁面發(fā)送Push消息與app頁面的title和content一致,否者推送的消息為字符串

下面代碼看不懂請參考
https://ask.dcloud.net.cn/article/34

var ua = navigator.userAgent.toLowerCase();
            mui.plusReady(function() {
                document.addEventListener('plusready', function(){  
                    // 頁面加載時觸發(fā)  
                    var pinf = plus.push.getClientInfo();  
                    var cid = pinf.clientid;//客戶端標(biāo)識  
                    console.log(cid)
                }, false );
                // console.log("222")
                // var options = {cover:false};
                // var str = '';    
                // str += ": 歡迎使用Html5 Plus創(chuàng)建本地消息!";    
                // plus.push.createMessage(str, "LocalMSG", options);  
                
                // 只有APP在線時,才會觸發(fā)receive事件,透傳消息不會觸發(fā)系統(tǒng)消息,需要創(chuàng)建本地消息  
                plus.push.addEventListener("receive", function(msg) {
                    console.log("(receive):" + JSON.stringify(msg));
                    if (/iphone|ipad|ipod/.test(ua)) { //如果是IOS  
                        var payload = msg.payload;
                        //【APP離線】收到消息,但沒有提醒(發(fā)生在一次收到多個離線消息時,只有一個有提醒,但其他的沒有提醒)  
                        //【APP在線】收到消息,不會觸發(fā)系統(tǒng)消息,需要創(chuàng)建本地消息,但不能重復(fù)創(chuàng)建。必須加msg.type驗證去除死循環(huán)                
                        if (msg.aps == null && msg.type == "receive") {
                            var messageTitle = payload.messageTitle;
                            var messageContent = payload.messageContent;
                            //創(chuàng)建本地消息,發(fā)送的本地消息也會被receive方法接收到,但沒有type屬性,且aps是null  
                            plus.push.createMessage(messageContent, JSON.stringify(payload), {
                                title: messageTitle
                            });
                        }
                    }
                    //如果是Android,當(dāng)APP在線時,收到透傳消息不會進(jìn)入系統(tǒng)消息,需要發(fā)送本地提醒。
                    if (/android/.test(ua)) {
                        var payload = JSON.parse(msg.payload);
                        var messageTitle = payload.messageTitle;
                        var messageContent = payload.messageContent;
                        plus.push.createMessage(messageContent, msg.payload, {
                            title: messageTitle
                        });
                    }
                }, false);
            
                //消息點擊事件  
                //【APP在線】,收到透傳消息通過,不會提醒至通知欄目,需要發(fā)送本地消息,再進(jìn)行點擊觸發(fā)的點擊事件。  
                //【APP離線】,收到離線透傳消息,必須通過Java后臺的Intent字符串?dāng)y帶payload,且符合格式才能觸發(fā)click事件,格式不符合不會觸發(fā)。  
                plus.push.addEventListener("click", function(msg) {
                    console.log("(click):" + JSON.stringify(msg));
                    if (/iphone|ipad|ipod/.test(ua)) { //如果是IOS  
                        var payload;
                        if (msg.type == "click") { //APP離線點擊包含click屬性,這時payload是JSON對象  
                            payload = msg.payload;
                        } else { //APP在線,收到消息不會包含type屬性,這時的payload是JSON字符串,需要轉(zhuǎn)為JSON對象  
                            payload = JSON.parse(msg.payload);
                        }
                        if (payload != null || payload != undefined) {
                            // var messageType = payload.messageType;
                            // messageClick(messageType, payload);
                        }
                    }
                    if (/android/.test(ua)) { //如果是Android,收到playload均是是JSON字符串,需要轉(zhuǎn)為JSON對象  
                        var payload = JSON.parse(msg.payload);
                        console.log(payload)
                        if (payload != null || payload != undefined) {
                            // var messageType = payload.messageType;
                            // messageClick(messageType, payload);
                        }
                    }
                }, false);
            })

該代碼參考作者
https://blog.csdn.net/xqhys/article/details/106474792

華為離線推送要求:
1.需要提交云端打包
2.配置sha256指紋證書
3.用自有證書打正式簽名包

測試的話首先運(yùn)行》運(yùn)行到手機(jī)或模擬器》制作自定義基座
打包完成以后運(yùn)行》運(yùn)行基座選擇》自定義調(diào)試基座

連接手機(jī)》ctrl+r運(yùn)行

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容