经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序实现聊天室功能
来源:jb51  时间:2021/6/15 9:23:16  对本文有异议

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

1.实现效果展示

2.room.wxml

  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

  1. const app = getApp()
  2.  
  3. Page({
  4. data: {
  5. avatarUrl: './user-unlogin.png',
  6. userInfo: null,
  7. logged: false,
  8. takeSession: false,
  9. requestResult: '',
  10. // chatRoomEnvId: 'release-f8415a',
  11. chatRoomCollection: 'chatroom',
  12. chatRoomGroupId: 'demo',
  13. chatRoomGroupName: '聊天室',
  14.  
  15. // functions for used in chatroom components
  16. onGetUserInfo: null,
  17. getOpenID: null,
  18. },
  19.  
  20. onLoad: function() {
  21. // 获取用户信息
  22. wx.getSetting({
  23. success: res => {
  24. if (res.authSetting['scope.userInfo']) {
  25. // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
  26. wx.getUserInfo({
  27. success: res => {
  28. this.setData({
  29. avatarUrl: res.userInfo.avatarUrl,
  30. userInfo: res.userInfo
  31. })
  32. }
  33. })
  34. }
  35. }
  36. })
  37.  
  38. this.setData({
  39. onGetUserInfo: this.onGetUserInfo,
  40. getOpenID: this.getOpenID,
  41. })
  42.  
  43. wx.getSystemInfo({
  44. success: res => {
  45. console.log('system info', res)
  46. if (res.safeArea) {
  47. const { top, bottom } = res.safeArea
  48. this.setData({
  49. containerStyle: `padding-top: ${(/ios/i.test(res.system) ? 10 : 20) + top}px; padding-bottom: ${20 + res.windowHeight - bottom}px`,
  50. })
  51. }
  52. },
  53. })
  54. },
  55.  
  56. getOpenID: async function() {
  57. if (this.openid) {
  58. return this.openid
  59. }
  60.  
  61. const { result } = await wx.cloud.callFunction({
  62. name: 'login',
  63. })
  64.  
  65. return result.openid
  66. },
  67.  
  68. onGetUserInfo: function(e) {
  69. if (!this.logged && e.detail.userInfo) {
  70. this.setData({
  71. logged: true,
  72. avatarUrl: e.detail.userInfo.avatarUrl,
  73. userInfo: e.detail.userInfo
  74. })
  75. }
  76. },
  77.  
  78. onShareAppMessage() {
  79. return {
  80. title: '即时通信 Demo',
  81. path: '/pages/im/room/room',
  82. }
  83. },
  84. })

4.room.json

  1. {
  2. "usingComponents": {
  3. "chatroom": "/components/chatroom/chatroom"
  4. }
  5. }

5.room.wxss

  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. }

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号