QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1655|回复: 1

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

[复制链接]

等级头衔

积分成就    金币 : 2851
   泡泡 : 1516
   精华 : 6
   在线时间 : 1305 小时
   最后登录 : 2024-12-7

丰功伟绩

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

联系方式
发表于 2021-6-15 07:40:57 | 显示全部楼层 |阅读模式
1.实现效果展示4 {: b9 y# U8 N  C' b
1.jpg
7 r% r" {3 S7 g/ a4 z* A6 e9 Q2.room.wxml% `1 A' I( I) X+ }& r6 |
<view class="container" style="{{containerStyle}}">
  <chatroom
    style="width: 100%; height: 100%"
    envId="{{chatRoomEnvId}}"
    collection="{{chatRoomCollection}}"
    groupId="{{chatRoomGroupId}}"
    groupName="{{chatRoomGroupName}}"
    userInfo="{{userInfo}}"
    onGetUserInfo="{{onGetUserInfo}}"
    getOpenID="{{getOpenID}}"
  ></chatroom>
</view>
3.room.js! E* ^5 `0 ~8 V1 u, C" s
const app = getApp()
 
Page({
  data: {
    avatarUrl: './user-unlogin.png',
    userInfo: null,
    logged: false,
    takeSession: false,
    requestResult: '',
    // chatRoomEnvId: 'release-f8415a',
    chatRoomCollection: 'chatroom',
    chatRoomGroupId: 'demo',
    chatRoomGroupName: '聊天室',
 
    // functions for used in chatroom components
    onGetUserInfo: null,
    getOpenID: null,
  },
 
  onLoad: function() {
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
          wx.getUserInfo({
            success: res => {
              this.setData({
                avatarUrl: res.userInfo.avatarUrl,
                userInfo: res.userInfo
              })
            }
          })
        }
      }
    })
 
    this.setData({
      onGetUserInfo: this.onGetUserInfo,
      getOpenID: this.getOpenID,
    })
 
    wx.getSystemInfo({
      success: res => {
        console.log('system info', res)
        if (res.safeArea) {
          const { top, bottom } = res.safeArea
          this.setData({
            containerStyle: `padding-top: ${(/ios/i.test(res.system) ? 10 : 20) + top}px; padding-bottom: ${20 + res.windowHeight - bottom}px`,
          })
        }
      },
    })
  },
 
  getOpenID: async function() {
    if (this.openid) {
      return this.openid
    }
 
    const { result } = await wx.cloud.callFunction({
      name: 'login',
    })
 
    return result.openid
  },
 
  onGetUserInfo: function(e) {
    if (!this.logged && e.detail.userInfo) {
      this.setData({
        logged: true,
        avatarUrl: e.detail.userInfo.avatarUrl,
        userInfo: e.detail.userInfo
      })
    }
  },
 
  onShareAppMessage() {
    return {
      title: '即时通信 Demo',
      path: '/pages/im/room/room',
    }
  },
})
4.room.json
" N( {1 h5 F- Y3 F! x5 M0 d3 g+ I
{
  "usingComponents": {
    "chatroom": "/components/chatroom/chatroom"
  }
}
5.room.wxss0 }" e& T& o* K/ n
.container {
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  padding-top: 80rpx;
  padding-bottom: 30rpx;
}
0 5 7

等级头衔

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

丰功伟绩

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

本版积分规则

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

GMT+8, 2024-12-7 04:13

Powered by paopaomj X3.5 © 2016-2025 sitemap

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