App.vue 1.7 KB

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