推送IM消息 - Uniapp推送

初始化GoEasy对象时允许通知栏提醒

接收端在初始化IM对象时,增加参数allowNotification:true即可,该参数仅在UniApp开发的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则表示不需要通知栏提醒
});

建立连接

在接收和发送消息之前,必须要先连接GoEasy,一个app中需要,且只需要建立一个连接即可,在成功断开连接之前,不需要,也不能反复建立连接。

        //建立连接
    this.goeasy.connect({
        id:"001", //pubsub选填,im必填
        data: {"avatar":"/www/xxx.png","nickname":"Neo"}, //pubsub选填,im必填,用于上下线提醒和查询在线用户列表时,扩展更多的属性
        onSuccess: function () {  //连接成功
            console.log("GoEasy connect successfully.") //连接成功
        },
        onFailed: function (error) { //连接失败
            console.log("Failed to connect GoEasy, code:"+error.code+ ",error:"+error.content);
        },
        onProgress:function(attempts) { //连接或自动重连中
            console.log("GoEasy is connecting", attempts);    
        }
    });

IM客户端发送通知栏推送

如果希望APP在后台运行时,能够收到通知栏提醒,需要创建消息时指定notification的title和body,反之则不需要。

通知栏提醒,对发送端没有平台限制,不论是小程序、H5还是服务端均可以进行发送,但只有Uniapp开发的APP在手机端可以接收通知栏推送,其他平台收到消息后,仅触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的通知栏提醒为“允许”状态。

至此,我们可以开始推送我们的第一条通知栏提醒,测试步骤:

  • 将Uniapp应用安装到手机上
  • 在手机系统设置里确认,该app的通知栏提醒为“允许”状态
  • 将APP切换到后台运行
  • 运行Uniapp应用运行到浏览器,在浏览器里执行发送代码
  • 恭喜,手机端收到通知栏提醒!

服务端发送通知栏推送

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

集成厂商通道

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

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

results matching ""

    No results matching ""