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


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延时重复执行函数 lLoopRun.js
Jun 29 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
javascript父、子页面交互技巧总结
Aug 08 Javascript
js实现二代身份证号码验证详解
Nov 20 Javascript
Js实现简单的小球运动特效
Feb 18 Javascript
JavaScript判断数字是否为质数的方法汇总
Jun 02 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
解决微信二次分享不显示摘要和图片的问题
Aug 18 Javascript
layui-table对返回的数据进行转变显示的实例
Sep 04 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
小程序实现文字循环滚动动画
React 高阶组件HOC用法归纳
Jun 13 #Javascript
React forwardRef的使用方法及注意点
原生Javascript+HTML5一步步实现拖拽排序
JS代码编译器Monaco使用方法
React中的Context应用场景分析
Jun 11 #Javascript
详解JVM系列之内存模型
You might like
杏林同学录(六)
2006/10/09 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
两款万能的php分页类
2015/11/12 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
django将数组传递给前台模板的方法
2019/08/06 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python中有几个关键字
2020/06/04 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
美国在线宠物商店:Chewy
2019/01/12 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
银行介绍信范文
2014/01/10 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
数学教学随笔感言
2014/02/17 职场文书
文案策划求职信
2014/04/14 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
基层党员对照检查材料
2014/09/24 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
创业计划书之水果店
2019/07/18 职场文书