主要用的框架是mui+vue+jquery這些技術(shù)
到華為官方進(jìn)行配置一些參數(shù)
- 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)行
