App.vue
1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<script>
import userlist from './commen/tim/user'
export default {
mounted() {
/**官网有很多关于关于sdk 其他的监听方法(比如:有新的消息,用户资料更新等等)
* 详情可对照: https://imsdk-1252463788.file.myqcloud.com/IM_DOC/Web/SDK.html
* 监听的含义:服务端发生了数据变更---前端全局可以接收到变更通知--前端就可以自动触发某个事件来更新相应数据
* */
// 登录成功后会触发 SDK_READY 事件,该事件触发后,可正常使用 SDK 接口
this.tim.on(this.$TIM.EVENT.SDK_READY, this.onReadyStateUpdate, this);
// 收到新消息
this.tim.on(this.$TIM.EVENT.MESSAGE_RECEIVED, this.onReceiveMessage);
// 会话列表更新
this.tim.on(this.$TIM.EVENT.CONVERSATION_LIST_UPDATED, event => {
this.$store.commit("updateConversationList", event.data);
});
},
methods: {
onReadyStateUpdate({name}) {
const isSDKReady = name === this.$TIM.EVENT.SDK_READY ? true : false;
//自动监听并更新 sdk 的ready 状态 (未登录是 notReady 登录后是ready)
this.$store.commit("toggleIsSDKReady", isSDKReady);
//sdk ready 后 肯定完成了登录操作 这里可以获取用户存储在im的基础信息/离线消息/黑名单列表
},
onReceiveMessage({data: messageList}) {
// this.handleAt(messageList);
this.$store.commit("pushCurrentMessageList", messageList);
},
//根据消息列表请求聊天对象的用户信息 并完成数据拼接
},
onLaunch: function() {
// #ifdef APP-PLUS
//app关闭默认的启动 方法关闭启动图。但是这个时间不能太晚,6s 超时后依旧会主动关闭。
setTimeout(()=>{
plus.navigator.closeSplashscreen();
},3000)
// #endif
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="scss">
/*每个页面公共css */
</style>