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


Posted in Javascript onJune 14, 2021

本文通过实例为大家分享了微信小程序实现聊天室的具体代码,供大家参考,具体内容如下

1.实现效果展示

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

2.room.wxml

<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

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

{
  "usingComponents": {
    "chatroom": "/components/chatroom/chatroom"
  }
}

5.room.wxss

.container {
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  padding-top: 80rpx;
  padding-bottom: 30rpx;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 原型链学习总结
Oct 29 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
JavaScript中json对象和string对象之间相互转化
Dec 26 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
jQuery实现三级联动效果
Mar 02 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
Mar 07 Javascript
vue实现的树形结构加多选框示例
Feb 02 Javascript
laravel实现中文和英语互相切换的例子
Sep 30 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 Javascript
基于Vue的侧边目录组件的实现
Feb 05 Javascript
js实现自动锁屏功能
Jun 02 Javascript
小程序实现文字循环滚动动画
React 高阶组件HOC用法归纳
Jun 13 #Javascript
React forwardRef的使用方法及注意点
原生Javascript+HTML5一步步实现拖拽排序
JS代码编译器Monaco使用方法
React中的Context应用场景分析
Jun 11 #Javascript
详解JVM系列之内存模型
You might like
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
PHP实现简易图形计算器
2020/08/28 PHP
浅析JavaScript中的delete运算符
2013/11/30 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
Python实现二分法算法实例
2015/02/02 Python
详解Python中的条件判断语句
2015/05/14 Python
Python使用爬虫猜密码
2016/02/19 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python通过http下载文件的方法详解
2019/07/26 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python 负数取模运算实例
2020/06/03 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
实习护士自我鉴定
2013/10/13 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2014年维修工作总结
2014/11/22 职场文书
个人创业事迹材料
2014/12/30 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
银行实习推荐信
2015/03/27 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
JavaScript 去重和重复次数统计
2021/03/31 Javascript