【1】本文档中使用的全是逶传消息,没有使用个推的其他消息
【2】需要开通UniPush功能,并在华为、小米开发者中添加App,并开通Push权限,目前不需要上架各厂商应用市场就可以使用,后续不知道需要不需要
【3】本实例使用Java后台开发,其他语言请自行翻译
【5】关于receive事件,只有发送的是透传数据【而且】不是标准格式【而且】当前应用在活动,这3个条件同时满足,才可以响应receive事件!!!,但是消息中心并没有消息展示!!!需要创建本地消息!!!才能在消息中心提醒,对于IOS的,一定要控制死循环!!!【重要】【重要】【重要】
只有APP在线时,才会触发receive事件,透传消息不会触发系统消息,需要创建本地消息【重要】【重要】【重要】
【6】关于click事件,click一定是点击通知栏的消息,才能触发!!! 下面两句话很重要
【APP在线】,收到透传消息通过,不会提醒至通知栏目,需要发送本地消息,再进行点击触发的点击事件。
【APP离线】,收到离线透传消息,必须通过Java后台的Intent字符串携带payload,且符合格式才能触发click事件,格式不符合不会触发。
【7】厂商推送需要设置的Intent字符串格式,请将${packageName},${title},${content},${payload}替换为正确的内容
${packageName} 代表应用包名
${title} 通知的标题
${content} 通知的内容
${payload} 其他附加参数,请用 JSON.toJSONString(payload)进行转码。
//====================
参数
**content**: ( String 类型) 必选 消息显示的内容,在系统通知中心中显示的文本内容。
**payload**: ( String 类型 ) 可选 消息承载的数据,可根据业务逻辑自定义数据格式。
**option**: ( MessageOptions ) 可选 创建消息的额外参数,参考MessageOptions。
MessageOptions : JSON对象,获客户端创建本地消息的参数
1、title: (String 类型 )推送消息的标题。
2、sound: (String 类型 )推送消息的提示音,显示消息时的播放的提示音,可取值: “system”-表示使用系统通知提示音; “none”-表示不使用提示音; 默认值为“system”。
3、cover: (Boolean 类型 )是否覆盖上一次提示的消息。可取值true或false,true为覆盖,false不覆盖
4、when: (Date 类型 )消息上显示的提示时间。
5、delay: (Number 类型 )提示消息延迟显示的时间。当设备接收到推送消息后,可不立即显示,而是延迟一段时间显示,延迟时间单位为s,默认为0s,立即显示。
//#ifdef APP-PLUS
plus.push.addEventListener(
'click',
function(msg) {
console.log('click', msg);
},
false
);
plus.push.addEventListener('receive', function(msg) {
console.log('receive');
console.log('(receive):' + JSON.stringify(msg));
console.log('000');
console.log('receive isIos', plus.os.name);
if (plus.os.name != 'iOS') {
//如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒。
console.log('createMessage');
// let msgJson = JSON.parse(msg.payload);
// JSON.parse()
console.log("内容",msg.content)
console.log("标题",msg.title )
let options = { cover: false, sound: 'system', title: msg.title };
// 必选 消息显示的内容
// 可选 消息承载的数据
// 可选 创建消息的额外参数
// title: (String 类型 )推送消息的标题
// sound: (String 类型 )推送消息的提示音,显示消息时的播放的提示音
// cover: (Boolean 类型 )是否覆盖上一次提示的消息
plus.push.createMessage(msg.content, msg.payload , options);
}
});
//#endif
每次修改代码都要编译(重起项目),注意。注意。注意