跳到主要内容

集成指南 - 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应用运行到浏览器,在浏览器里执行发送代码
  • 恭喜,手机端收到通知栏提醒!

服务端发送通知栏推送

参见IM Rest接口和服务端发送

集成厂商通道

为了确保APP在进程被杀掉后,仍然可以收到通知栏提醒,必须要配置厂商通道,详情请参阅GoEasy接入厂商通道教程。 GoEasy目前已集成以下厂商,其他厂商也在持续推进中:

  • 苹果iOS(APNs)
  • 小米
  • 华为
  • 荣耀
  • OPPO
  • VIVO
  • 魅族