差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版 两侧同时换到之后的修订记录 | ||
im:applet:message [2019/11/06 03:09] zhangdong |
im:applet:message [2020/03/21 13:08] zhangdong [接收消息] |
||
---|---|---|---|
行 342: | 行 342: | ||
<code javascript> | <code javascript> | ||
// 单聊发送文件消息 | // 单聊发送文件消息 | ||
- | var sendPrivateFile = function () { | + | uploadRecord(tempFilePath){ |
- | var id = conn.getUniqueId(); // 生成本地消息id | + | var str = WebIM.config.appkey.split("#"); |
- | var msg = new WebIM.message('file', id); // 创建文件消息 | + | var me = this; |
- | var input = document.getElementById('file'); // 选择文件的input | + | var token = WebIM.conn.context.accessToken |
- | var file = WebIM.utils.getFileUrl(input); // 将文件转化为二进制文件 | + | wx.uploadFile({ |
- | var allowType = { | + | url: "https://a1.easemob.com/" + str[0] + "/" + str[1] + "/chatfiles", |
- | 'jpg': true, | + | filePath: tempFilePath, |
- | 'gif': true, | + | name: "file", |
- | 'png': true, | + | header: { |
- | 'bmp': true, | + | "Content-Type": "multipart/form-data", |
- | 'zip': true, | + | Authorization: "Bearer " + token |
- | 'txt': true, | + | }, |
- | 'doc':true, | + | success(res){ |
- | 'pdf': true | + | var id = WebIM.conn.getUniqueId(); |
- | }; | + | var msg = new WebIM.message(msgType.AUDIO, id); |
- | if (file.filetype.toLowerCase() in allowType) { | + | var dataObj = JSON.parse(res.data); |
- | var option = { | + | msg.set({ |
- | apiUrl: WebIM.config.apiURL, | + | apiUrl: WebIM.config.apiURL, |
- | file: file, | + | accessToken: token, |
- | to: 'username', // 接收消息对象 | + | body: { |
- | roomType: false, | + | type: msgType.FILE, |
- | ext: {}, // 扩展消息 | + | url: dataObj.uri + "/" + dataObj.entities[0].uuid, |
- | onFileUploadError: function () { // 消息上传失败 | + | filetype: "", |
- | console.log('onFileUploadError'); | + | filename: tempFilePath, |
- | }, | + | accessToken: token, |
- | onFileUploadComplete: function () { // 消息上传成功 | + | length: "" |
- | console.log('onFileUploadComplete'); | + | }, |
- | }, | + | from: me.data.username.myName, |
- | success: function () { // 消息发送成功 | + | to: me.getSendToParam(), |
- | console.log('Success'); | + | roomType: false, |
- | }, | + | chatType: me.data.chatType, |
- | flashUpload: WebIM.flashUpload | + | success: function (argument) { |
- | }; | + | disp.fire('em.chat.sendSuccess', id); |
- | msg.set(option); | + | } |
- | conn.send(msg.body); | + | }); |
- | } | + | if(me.isGroupChat()){ |
+ | msg.setGroup("groupchat"); | ||
+ | } | ||
+ | msg.body.length = ""; | ||
+ | WebIM.conn.send(msg.body); | ||
+ | } | ||
+ | }); | ||
}; | }; | ||
</code> | </code> | ||
行 430: | 行 436: | ||
</code> | </code> | ||
- | 单聊发送视频消息示例如下: | ||
- | <code javascript> | ||
- | // 单聊发送视频消息 | ||
- | var sendPrivateVideo = function () { | ||
- | var id = conn.getUniqueId(); // 生成本地消息id | ||
- | var msg = new WebIM.message('video', id); // 创建视频消息 | ||
- | var input = document.getElementById('video'); // 选择视频的input | ||
- | var file = WebIM.utils.getFileUrl(input); // 将视频转化为二进制文件 | ||
- | var allowType = { | ||
- | 'mp4': true, | ||
- | 'wmv': true, | ||
- | 'avi': true, | ||
- | 'rmvb':true, | ||
- | 'mkv':true | ||
- | }; | ||
- | if (file.filetype.toLowerCase() in allowType) { | ||
- | var option = { | ||
- | apiUrl: WebIM.config.apiURL, | ||
- | file: file, | ||
- | to: 'username', // 接收消息对象 | ||
- | roomType: false, | ||
- | ext: {}, // 扩展消息 | ||
- | onFileUploadError: function () { // 消息上传失败 | ||
- | console.log('onFileUploadError'); | ||
- | }, | ||
- | onFileUploadComplete: function () { // 消息上传成功 | ||
- | console.log('onFileUploadComplete'); | ||
- | }, | ||
- | success: function () { // 消息发送成功 | ||
- | console.log('Success'); | ||
- | }, | ||
- | flashUpload: WebIM.flashUpload | ||
- | }; | ||
- | msg.set(option); | ||
- | conn.send(msg.body); | ||
- | } | ||
- | }; | ||
- | </code> | ||
=== API === | === API === | ||
行 524: | 行 492: | ||
}); | }); | ||
</code> | </code> | ||
- | |||
- | **注意:** | ||
- | * 如果 ''isAutoLogin'' 设置为 false ,那么必须手动设置上线,否则无法收消息。手动上线指的是调用 ''conn.setPresence()'' ; | ||
- | | ||
- | * 如果 conn 初始化时已将 ''isAutoLogin'' 设置为 true ,则无需调用 ''conn.setPresence()''。 | ||
=== API === | === API === |