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


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 相关文章推荐
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
Apr 15 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
Sep 13 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
JS触摸与手势事件详解
May 09 Javascript
基于JavaScript实现飘落星星特效
Aug 10 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
koa源码中promise的解读
Nov 13 Javascript
vue项目移动端实现ip输入框问题
Mar 19 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 Javascript
类和原型的设计模式之复制与委托差异
Jul 07 Javascript
小程序实现文字循环滚动动画
React 高阶组件HOC用法归纳
Jun 13 #Javascript
React forwardRef的使用方法及注意点
原生Javascript+HTML5一步步实现拖拽排序
JS代码编译器Monaco使用方法
React中的Context应用场景分析
Jun 11 #Javascript
详解JVM系列之内存模型
You might like
PHP新手上路(三)
2006/10/09 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
2014/06/10 PHP
PHP中的use关键字概述
2014/07/23 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
JS location几个方法小姐
2008/07/09 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Python open读写文件实现脚本
2008/09/06 Python
Python中扩展包的安装方法详解
2017/06/14 Python
简单了解什么是神经网络
2017/12/23 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Python中six模块基础用法
2019/12/08 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
演讲比赛获奖感言
2014/02/02 职场文书
森林防火工作方案
2014/02/14 职场文书
英文求职信写作小建议
2014/02/16 职场文书
商务英语专业求职信
2014/06/26 职场文书
土建技术员岗位职责
2015/04/11 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript