unipush集成了多家推送蚂斤,配置很簡單
"push" : {
"unipush" : {
"icons" : {
"small" : {
"ldpi" : "unpackage/res/drawable-ldpi/push_small.png",
"mdpi" : "unpackage/res/drawable-mdpi/push_small.png",
"hdpi" : "unpackage/res/drawable-hdpi/push_small.png",
"xhdpi" : "unpackage/res/drawable-xhdpi/push_small.png",
"xxhdpi" : "unpackage/res/drawable-xxhdpi/push_small.png"
}
}
}
}
icons 配置android通知左側(cè)小圖標,注意圖片為alpha通道透明png圖片
image.png
獲取cid會有延遲槐沼,可以采用輪詢方式
const timer = setInterval(() => {
if ((clientid && clientid !== 'null' && clientid !== 'undefined') || times > 10) {
clearInterval(timer);
times = 0;
// 設(shè)備信息 型號 廠商 系統(tǒng)版本
const model = window.plus.device.model;
const vendor = window.plus.device.vendor;
const clientVersion = window.plus.os.version;
console.log('clientId獲取成功:' + clientid);
// 防止進入app后登錄cid還未獲取到曙蒸,獲取cid之后再關(guān)閉啟動圖
window.plus.navigator.closeSplashscreen();
} else {
console.log('clientId獲取失敗');
times += 1;
const clientInfo = window.plus.push.getClientInfo();
clientid = clientInfo.clientid;
}
}, 1000);
cid在線時(app在前臺),手動創(chuàng)建消息
window.plus.push.addEventListener(
'receive',
(msg: any) => {
console.log('receive msg:' + JSON.stringify(msg));
// ios只能發(fā)送透傳消息
if (isIos()) {
if (msg.aps === null && msg.type === 'receive') {
const payload = msg.payload;
window.plus.push.createMessage(payload?.content ?? '推送內(nèi)容', JSON.stringify(payload), { title: payload?.title ?? '中山六院' });
}
// if ( msg.aps ) { // Apple APNS message
// //APNS下發(fā)的消息岗钩,應(yīng)用在前臺
// } else if ( 'LocalMSG' == msg.payload ) { // 特殊payload標識本地創(chuàng)建的消息
// //本地創(chuàng)建的消息纽窟,通常不需要處理
// //注意:不要在這種情況下再此調(diào)用window.plus.push.createMessage,從而引起循環(huán)創(chuàng)建本地消息
// } else {
// //接收到在線透傳消息
// }
// // 其它邏輯
}
if (isAndroid()) {
window.plus.push.createMessage(msg?.payload?.content, JSON.stringify(msg?.payload), { title: msg?.payload?.title });
}
},
false
);
點擊消息兼吓,自定義數(shù)據(jù)處理臂港,跳轉(zhuǎn)操作等等可以在這里完成
window.plus.push.addEventListener(
'click',
(msg: any) => {
// window.plus.nativeUI.alert(JSON.stringify(msg));
if (isIos()) {
console.log('ios click msg', JSON.stringify(msg));
let payload: any;
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 (msg.aps) {
// Apple APNS message
// APNS下發(fā)的消息,應(yīng)用在前臺
} else {
}
}
if (isAndroid()) {
const payload = JSON.parse(msg.payload);
}
},
false
);
TIPS:iphone調(diào)試需要在自定義基座下才能接收到推送
持續(xù)更新中浑娜。佑力。。棚愤。