QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

泡泡马甲APP 更多内容请下载泡泡马甲手机客户端APP 立即下载 ×
查看: 1542|回复: 1

[小程序] 微信小程序实现聊天室功能

[复制链接]

等级头衔

积分成就    金币 : 2802
   泡泡 : 1516
   精华 : 6
   在线时间 : 1243 小时
   最后登录 : 2024-4-29

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2021-6-15 07:40:57 | 显示全部楼层 |阅读模式
1.实现效果展示
2 O7 Z2 h* f5 N% M" W 1.jpg - n" k' ~6 p; u* V; N/ P% K1 `' G7 M
2.room.wxml
! I) C7 C7 h/ K# e3 x" ]+ |
  1. <view class="container" style="{{containerStyle}}">
  2.   <chatroom
  3.     style="width: 100%; height: 100%"
  4.     envId="{{chatRoomEnvId}}"
  5.     collection="{{chatRoomCollection}}"
  6.     groupId="{{chatRoomGroupId}}"
  7.     groupName="{{chatRoomGroupName}}"
  8.     userInfo="{{userInfo}}"
  9.     onGetUserInfo="{{onGetUserInfo}}"
  10.     getOpenID="{{getOpenID}}"
  11.   ></chatroom>
  12. </view>
3.room.js
/ f# N' R9 E1 Q/ P% L1 \1 c/ j
  1. const app = getApp()
  2. Page({
  3.   data: {
  4.     avatarUrl: './user-unlogin.png',
  5.     userInfo: null,
  6.     logged: false,
  7.     takeSession: false,
  8.     requestResult: '',
  9.     // chatRoomEnvId: 'release-f8415a',
  10.     chatRoomCollection: 'chatroom',
  11.     chatRoomGroupId: 'demo',
  12.     chatRoomGroupName: '聊天室',
  13.     // functions for used in chatroom components
  14.     onGetUserInfo: null,
  15.     getOpenID: null,
  16.   },
  17.   onLoad: function() {
  18.     // 获取用户信息
  19.     wx.getSetting({
  20.       success: res => {
  21.         if (res.authSetting['scope.userInfo']) {
  22.           // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
  23.           wx.getUserInfo({
  24.             success: res => {
  25.               this.setData({
  26.                 avatarUrl: res.userInfo.avatarUrl,
  27.                 userInfo: res.userInfo
  28.               })
  29.             }
  30.           })
  31.         }
  32.       }
  33.     })
  34.     this.setData({
  35.       onGetUserInfo: this.onGetUserInfo,
  36.       getOpenID: this.getOpenID,
  37.     })
  38.     wx.getSystemInfo({
  39.       success: res => {
  40.         console.log('system info', res)
  41.         if (res.safeArea) {
  42.           const { top, bottom } = res.safeArea
  43.           this.setData({
  44.             containerStyle: `padding-top: ${(/ios/i.test(res.system) ? 10 : 20) + top}px; padding-bottom: ${20 + res.windowHeight - bottom}px`,
  45.           })
  46.         }
  47.       },
  48.     })
  49.   },
  50.   getOpenID: async function() {
  51.     if (this.openid) {
  52.       return this.openid
  53.     }
  54.     const { result } = await wx.cloud.callFunction({
  55.       name: 'login',
  56.     })
  57.     return result.openid
  58.   },
  59.   onGetUserInfo: function(e) {
  60.     if (!this.logged && e.detail.userInfo) {
  61.       this.setData({
  62.         logged: true,
  63.         avatarUrl: e.detail.userInfo.avatarUrl,
  64.         userInfo: e.detail.userInfo
  65.       })
  66.     }
  67.   },
  68.   onShareAppMessage() {
  69.     return {
  70.       title: '即时通信 Demo',
  71.       path: '/pages/im/room/room',
  72.     }
  73.   },
  74. })
4.room.json
; _" \% R( K: [$ ^* |
  1. {
  2.   "usingComponents": {
  3.     "chatroom": "/components/chatroom/chatroom"
  4.   }
  5. }
5.room.wxss% x( O0 N) ]7 C7 V
  1. .container {
  2.   height: 100%;
  3.   position: absolute;
  4.   top: 0;
  5.   bottom: 0;
  6.   left: 0;
  7.   right: 0;
  8.   padding-top: 80rpx;
  9.   padding-bottom: 30rpx;
  10. }
0 5 7

等级头衔

积分成就    金币 : 1
   泡泡 : 0
   精华 : 0
   在线时间 : 1 小时
   最后登录 : 2021-6-16

丰功伟绩

联系方式
发表于 2021-6-15 15:52:06 | 显示全部楼层
666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号 )

GMT+8, 2024-5-1 17:50

Powered by paopaomj X3.4 © 2016-2024 sitemap

快速回复 返回顶部 返回列表