集成指南 - Uniapp推送
初始化GoEasy对象时允许通知栏提醒
APP在初始化GoEasy对象时,增加参数allowNotification:true即可,该参数仅在UniApp开发的APP下有效,如果在小程序和网页下启用,该参数会被自动忽略,不会报错。
开启通知栏推送后,如果APP收到的消息含有通知栏信息,将会按照如下规则触发:
- APP在前台运行,APP内部能收到新消息,但不会收到通知栏提醒。
- APP在后台运行或进程被杀掉,APP将会收到通知栏提醒,APP拉起后,APP内部也能收到新消息。
Vue.prototype.goeasy = GoEasy.getInstance({
host: "hangzhou.goeasy.io", //若是新加坡区域:singapore.goeasy.io
appkey: "您的common key",
modules: ['im'],//根据需要,传入‘pubsub’或'im’,或数组方式同时传入
allowNotification: true, // true表示支持通知栏提醒,false则表示不需要通知栏提醒
});
IM客户端发送通知栏推送
如果希望APP在后台运行时,能够收到通知栏提醒,需要创建消息时指定notification的title和body,反之则不需要。
通知栏提醒,对发送端没有平台限制,不论是小程序、H5还是服务端均可以进行发送,但只有Uniapp开发的APP在手机端会触发通知栏推送,其他平台notification会被自动忽略。
var im = this.goeasy.im;
let textMessage = im.createTextMessage({
text: 'Hello, GoEasyIM',
to: {
type: GoEasy.IM_SCENE.PRIVATE,
id: 'user002',
data: {"avatar": "/www/xxx.png", "nickname": "Neo"}
},
notification: { //APP在后台运行,或进程被杀掉,将会收到通知栏提醒
title: '张无忌发来一段文字',
body: 'Hello, GoEasyIM'
}
});
监听通知栏消息点击事件
用户点击通知栏消息,除了APP被自动拉起外,开发者还可以通过监听通知栏消息的点击事件,根据消息数据,执行相应的业务逻辑,比如跳转到不同的页面,或显示不同的内容。
为了避免在APP启动后未完成监听动作而导致APP无法响应点击操作,确保APP总是可以第一时间响应通知栏消息的点击事件,请务必在main.js
GoEasy初始化后,立即监听onClickNotification事件。
//当用户点击通知栏消息触发,开发者可以根据消息数据,执行不同的业逻辑,比如跳转到不同的页面,或显示不同的内容
goeasy.onClickNotification((message) => {
// message
// {
// "messageId": "8f0e27a0c7e111eab347b726da4416bd",
// "timestamp": 1594958217087,
// "type": "text",
// "senderId": "3bb179af-bcc5-4fe0-9dac-c05688484649",
// "toType: 'group', // 私聊消息为'private'
// "groupId: 'group001', // 私聊消息没有该字段
// }
console.log('Clicked notification message - ', message);
});
测试第一条通知栏推送
再次强调
为了确保能收到通知栏提醒,必须在手机的系统设置里确认,该app的通知栏提醒为“允许”状态。
至此,我们可以开始推送我们的第一条通知栏提醒,测试步骤:
- 将Uniapp应用安装到手机上
- 在手机系统设置里确认,该app的通知栏提醒为
“允许”
状态 - 将APP切换到后台运行
- 运行Uniapp应用运行到浏览器,在浏览器里执行发送代码
- 恭喜,手机端收到通知栏提醒!
服务端发送通知栏推送
集成厂商通道
为了确保APP在进程被杀掉后,仍然可以收到通知栏提醒,必须要配置厂商通道,详情请参阅GoEasy接入厂商通道教程。 GoEasy目前已集成以下厂商,其他厂商也在持续推进中:
- 苹果iOS(APNs)
- 小米
- 华为
- 荣耀
- OPPO
- VIVO
- 魅族