国庆前有一个业务功能要实现!
已知:不需要任何人际关系网!
已知:需要一个类似于群的功能!
已知:不需要任何人批准,只要用户进入活动就能加入到群!
已知:不需要任何一个人成为那个聊天室的管理员(除了我们活动主办方)
已知:需要具备发送消息、发送图片功能
已知:整个流程不需要用户自己操作,比如加聊天室或者注册登陆等…全部交由代码操作
综上所述:最终选择聊天室而没有选择群,主要是群需要管理员同意才能加入!!!!!!
由于时间比较紧,而且这方面是我个人的知识盲区,而且完全评估不出什么时候能完成,没想到…一天时间就能把这个功能完成的七七八八。
流程图
关于为什么要退出聊天室,是因为在聊天室,获取离线的聊天室消息,只能重新加入聊天室才能,
下面是上述流程图的代码(不要纠结为什么,我的function要放在初始化成功里面了= =写demo的时候一路写下去,懒拆了)
// 引入sdk
import sdk from ‘jmessage-wxapplet-sdk-1.4.2.min.js’
// 引入md5,要进行加密
import md5 from ‘js-md5/src/md5.js’
export default {
created() {
// 你的appkey
let appkey = ”
// 随机20位字符
let random_str = ”
// 当前时间戳
let timestamp = Date.parse(new Date())
// md5加密生成密匙
let signature = md5((`appkey=${appkey}×tamp=${timestamp}&random_str=${random_str}&key=你的程序密匙`))
var JIM = new sdk();
// 初始化sdk
JIM.init({
“appkey” : appkey,
“random_str” : random_str,
“signature” : signature,
“timestamp” : timestamp,
“flag” : 0
}).onSuccess(function(data) {
// 初始化成功
// 用户账号
let username = ”
// 用户密码
let password = ”
login()
function login () {
JIM.login({
‘username’ : username,
‘password’ : password
}).onSuccess(function(data) {
console.log(‘登陆成功,加入聊天室’)
enterChatroom()
}).onFail(function(data){
console.log(‘登陆失败,进入注册’)
register()
});
}
// 注册账号
function register () {
console.log(‘开始注册’)
JIM.register({
‘username’ : username,
‘password’ : password,
‘is_md5’ : false,
‘extras’ : {‘自定义json’: ”},
‘address’ : ‘用户地址’
}).onSuccess(function(data) {
login()
})
}
// 加入聊天室
function enterChatroom () {
JIM.enterChatroom({
// 聊天室ID
‘id’ : ”
}).onSuccess(function(data) {
console.log(‘加入聊天室成功,持续抓取信息中…’)
onRoomMsg()
}).onFail(function(data) {
console.log(data)
});
}
// 监控聊天室消息
function onRoomMsg () {
JIM.onRoomMsg(function(data) {
console.log(‘发送人:’ + data.from_username)
console.log(‘发送消息:’ + data.content.msg_body.text)
});
}
}).onFail(function(data) {
console.log(data)
});
},
}
GIF.gif
后续还有一些坑,比如,如何发送消息,让文本框始终在最底以及锁屏账户会断开连接等等等等等等等等,先到这里吧,后续在填吧。