====== 集成方式 ====== ---- ===== 集成 ===== 可以通过以下三种方式引用web sdk,其中后两种为从版本1.4.5开始新增的引用方式: - 将文件复制到本地,引用本地文件; - 添加 说明:Web SDK V1.4.5向下兼容V1.1.2和V1.1.1。关于详细的引用文件和配置参数的方法,请查看本页“兼容性”的内容。 ==== 添加 2. 通过webIM命名空间访问websdk。 注意:该方式只引用了web sdk,仍需在本地引用config和strophe文件,并配置config文件内的参数。 ==== NPM ==== web sdk已发布到[[https://www.npmjs.com/package/easemob-websdk|NPM]]。采用如下方法集成: 1. 通过npm安装web sdk。 npm install easemob-websdk --save 2. 先require,再访问WebIM。 require('easemob-websdk'); 注意:该方式只引用了web sdk,仍需在本地引用config和strophe文件,并配置config文件内的参数。 ===== 配置 ===== 在webim.config.js文件内进行以下配置: xmppURL: 'im-api.easemob.com', // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值 apiURL: 'http://a1.easemob.com', // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值 appkey: 'easemob-demo#chatdemoui', // App key https : false, // 是否使用https isMultiLoginSessions: false, // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能 isAutoLogin: true, // 自动出席,(如设置为false,则表示离线,无法收消息,需要在登录成功后手动调用conn.setPresence()才可以收消息) isDebug: false, // 打开调试,会自动打印log,在控制台的console中查看log autoReconnectNumMax: 2, // 断线重连最大次数 autoReconnectInterval: 2, // 断线重连时间间隔 heartBeatWait: 4500, // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms delivery: true, // 是否发送已读回执 //注:建议xmppURL、apiURL、https三个参数统一,否则ie9以下会报**拒绝访问**的错误。// **例:** * https: false xmppURL: 'im-api.easemob.com', apiURL: 'http://a1.easemob.com', appkey: 'easemob-demo#chatdemoui', https : false, isMultiLoginSessions: false isAutoLogin: true * https: true xmppURL: 'im-api.easemob.com', apiURL: 'https://a1.easemob.com', appkey: 'easemob-demo#chatdemoui', https : true, isMultiLoginSessions: false isAutoLogin: true ===== 兼容性 ===== ==== 兼容V1.1.2 ==== Web SDK V1.4.5 向下兼容 V1.1.2。如果直接用 V1.1.2 的 demo 嵌入 V1.4.5 的SDK,需要修改旧的 webim.config.js,在第一行''WebIM.config = {''的前面插入一行''var WebIM = {};''。完成后,示例如下: var WebIM = {}; WebIM.config = { ==== 兼容V1.1.1 ==== Web SDK V1.4.5 向下兼容 V1.1.1。从V1.1.1升级到V1.4.5时,需要做如下操作: === 第1步:修改引入的SDK文件 === 1. 下载Web SDK V1.4.5并解压后,将 /sdk/dist/websdk-1.4.5.js 和 /sdk/disk/websdk.shim.js 拷贝到系统相应的目录下。 2. 在原来的引用SDK的html文件中增加一行代码''window.WebIM = {};'',并使用上述两个文件替换原来引用的SDK的js文件。 替换前: 替换后: 3. 将easemob.im.config.js文件中的参数''multiResources''修改为''isMultiLoginSessions''。 === 第2步:修改websdk-1.4.5.js文件 === 1. 在sdk文件下搜索''%%/%%%%/%%class'',将下面的''connection = function connection(options)'' 改成''window.WebIM.connection = function connection(options)'' 2. 在sdk文件下搜索''connection.prototype.registerUser = function (options)'',在上面一行添加''var connection = window.WebIM.connection;'' ===== 导入第三方表情包 ===== 在项目下面新建一个文件夹,用于存放表情图片文件。 在引用了sdk之后执行如下代码: WebIM.Emoji = { path: 'demo/images/faces/' /*表情包路径*/ , map: { '[):]': 'ee_1.png', '[:D]': 'ee_2.png', '[;)]': 'ee_3.png', '[:-o]': 'ee_4.png', '[:p]': 'ee_5.png' } }; 全局变量WebIM添加一个Emoji属性,path表示你表情图片存放的路径,map里面的key表示代表表情图片的字符,value表示表情图片的文件名。 发送和接收表情消息与文本消息类似,如果发送的文本消息中带有表情的key字符,sdk会将此消息转换成表情图片的实际路径,如:文本消息中包含"[):]"字符串,则解析为WebIM.Emoji.path+WebIM.Emoji.map['[):]']= "demo/images/faces/ee_1.png"。 ---- 上一页:[[start:400webimintegration:10webimintro|Web IM 介绍]] 下一页:[[start:400webimintegration:25intiate|Web SDK基础功能]]