1.实现效果展示# h! A5 s( ^- r% _! ]# \0 u
& I# N9 X' r# K6 M. o$ k5 w
2.room.wxml) v% h$ E* G, T1 `" a. ^, \
- <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' ~; P; Z8 f7 z9 [! g
- 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 i6 Y0 m& t3 P& k; r
- {
- "usingComponents": {
- "chatroom": "/components/chatroom/chatroom"
- }
- }
5.room.wxss! m% Y. k+ P" X" v J
- .container {
- height: 100%;
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- padding-top: 80rpx;
- padding-bottom: 30rpx;
- }
|