HBuilder(H5+App)中集成腾讯云通信IM功能

产品经理的需求是,App端需要集成腾讯云IM来接收消息。在技术层面有两个实现方案:

  1. 如果App端只需要收发IM消息,不涉及远程推送功能,则可以使用腾讯云IM的WebSDK来实现。
  2. 但如果App端除了接收IM消息之外,还需要接收腾讯云的远程推送消息,由于HBuilder默认只集成了个推和小米推送,并未集成腾讯云的推送功能,此时只能自己去集成iOS/Android的SDK来实现。WebSDK无法实现远程推送。

配置腾讯云通信IM后台

首先需要登录腾讯云通信后台并进行配置,生成AppID和AccountType。

H5+集成腾讯云IM的WebSDK

注意:WebSDK无法获取远程推送,只能收发消息。
下载WebSDK,解压并将js文件放入项目工程中。
在这里插入图片描述
App端要想实现云通信,首先需要先登录腾讯云。将webim.js引入到html页面,并调用webim.login()函数。

1<script type="text/javascript" src="js/imsdk/webim.js"></script> 2<script type="text/javascript" charset="utf-8"> 3 4webim.login({ 5 sdkAppID: "1234567890", //填入后台生成的AppID 6 appIDAt3rd: "1234567890", //填入后台生成的AppID 7 identifier: userId, //用户唯一标示 8 userSig: userSig, //用户签名 9 accountType: "12345" //填入后台生成的AccountType 10 }, { 11 "onMsgNotify": onMsgNotify //指定一个接收并处理IM消息的函数 12 }, { 13 isAccessFormalEnv: true, 14 isLogOn: false 15 }, 16 function (resp) 17 { 18 mui.toast("IM登录成功!!!" + resp); 19 }, 20 function (err) 21 { 22 mui.toast("IM登录失败。" + err.ErrorInfo); 23 } 24); 25</script>

webim.login()函数需要填入相关信息,以及指定用于响应IM消息的函数,以及登录成功和失败的回调函数,具体请参阅webim.login接口文档
下一步就是创建响应IM消息的函数。

1 //监听新消息事件 2 //newMsgList 为新消息数组,结构为[Msg] 3 function onMsgNotify(newMsgList) 4 { 5 // console.warn(newMsgList); 6 var newMsg; 7 //获取所有聊天会话 8 // var sessMap = webim.MsgStore.sessMap(); 9 for (var j in newMsgList) 10 {//遍历新消息 11 newMsg = newMsgList[j]; 12 var elems = newMsg.getElems();//获取消息包含的元素数组 13 for (var i in elems) 14 { 15 let elem = elems[i]; 16 let type = elem.getType();//获取元素类型 17 let content = elem.getContent();//获取元素对象 18 switch (type) 19 { 20 case webim.MSG_ELEMENT_TYPE.TEXT: 21 const messageText = content.getText(); 22 alert("收到IM消息:" + messageText); 23 //进行处理 24 25 break; 26// case webim.MSG_ELEMENT_TYPE.FACE: 27// html += convertFaceMsgToHtml(content); 28// break; 29// case webim.MSG_ELEMENT_TYPE.IMAGE: 30// html += convertImageMsgToHtml(content); 31// break; 32// case webim.MSG_ELEMENT_TYPE.SOUND: 33// html += convertSoundMsgToHtml(content); 34// break; 35// case webim.MSG_ELEMENT_TYPE.FILE: 36// html += convertFileMsgToHtml(content); 37// break; 38// case webim.MSG_ELEMENT_TYPE.LOCATION://暂不支持地理位置 39// //html += convertLocationMsgToHtml(content); 40// break; 41// case webim.MSG_ELEMENT_TYPE.CUSTOM: 42// html += convertCustomMsgToHtml(content); 43// break; 44// case webim.MSG_ELEMENT_TYPE.GROUP_TIP: 45// html += convertGroupTipMsgToHtml(content); 46// break; 47 default: 48 webim.Log.error('未知消息元素类型: elemType=' + type); 49 break; 50 } 51 } 52 } 53 }

集成iOS/Android的腾讯云通信IMSDK

待整理

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

HBuilder(H5+App)中集成腾讯云通信IM功能 - HelloWorld