WeChatアプレットがチャットルーム機能を実現

WeChatアプレットがチャットルーム機能を実現

この記事では、参考のために、WeChatアプレットのチャットルームを実装するための具体的なコードを例を通して紹介します。具体的な内容は次のとおりです。

1. 効果表示を実現する

2.部屋.wxml

<view class="container" style="{{containerStyle}}">
  <チャットルーム
    スタイル="幅: 100%; 高さ: 100%"
    envId="{{チャットルームEnvId}}"
    コレクション="{{チャットルームコレクション}}"
    グループID="{{チャットルームグループID}}"
    グループ名="{{チャットルームグループ名}}"
    ユーザー情報="{{ユーザー情報}}"
    onGetUserInfo="{{onGetUserInfo}}"
    getOpenID="{{getOpenID}}"
  </チャットルーム>
</ビュー>

3.ルームjs

const アプリ = getApp()

ページ({
  データ: {
    アバター URL: './user-unlogin.png',
    ユーザー情報: null、
    ログ: false、
    セッション取得: false、
    リクエスト結果: ''、
    // チャットルームEnvId: 'release-f8415a',
    チャットルームコレクション: 'チャットルーム',
    チャットルームグループID: 'デモ',
    chatRoomGroupName: 'チャットルーム',

    // チャットルームコンポーネントで使用される関数
    onGetUserInfo: null、
    getOpenID: null、
  },

  onLoad: 関数() {
    // ユーザー情報を取得する wx.getSetting({
      成功: res => {
        res.authSetting['scope.userInfo']の場合{
          // すでに承認されているので、ポップアップウィンドウなしで直接 getUserInfo を呼び出してアバターのニックネームを取得できます wx.getUserInfo({
            成功: res => {
              this.setData({
                アバター URL: res.userInfo.avatarUrl、
                ユーザー情報: res.userInfo
              })
            }
          })
        }
      }
    })

    this.setData({
      onGetUserInfo: this.onGetUserInfo、
      getOpenID: this.getOpenID、
    })

    wx.getSystemInfo({
      成功: res => {
        console.log('システム情報', res)
        (res.safeArea)の場合{
          const { 上、下 } = res.safeArea
          this.setData({
            コンテナスタイル: `パディングトップ: ${(/ios/i.test(res.system) ? 10 : 20) + 上}px; パディングボトム: ${20 + res.windowHeight - 下}px`,
          })
        }
      },
    })
  },

  getOpenID: 非同期関数() {
    (this.openid)の場合{
      this.openidを返す
    }

    const { 結果 } = wx.cloud.callFunction({
      名前: 'ログイン',
    })

    結果.openidを返す
  },

  onGetUserInfo: 関数(e) {
    if (!this.logged && e.detail.userInfo) {
      this.setData({
        ログに記録: true、
        アバター URL: e.detail.userInfo.avatarUrl、
        ユーザー情報: e.detail.userInfo
      })
    }
  },

  onShareAppMessage() {
    戻る {
      タイトル: 「インスタントメッセージングデモ」
      パス: '/pages/im/room/room',
    }
  },
})

4.ルーム.json

{
  "コンポーネントの使用": {
    "チャットルーム": "/components/チャットルーム/チャットルーム"
  }
}

5.部屋.wxss

。容器 {
  高さ: 100%;
  位置: 絶対;
  上: 0;
  下部: 0;
  左: 0;
  右: 0;
  パディングトップ: 80rpx;
  パディング下部: 30rpx;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットがチャットルームを実装
  • WeChatアプレット開発チャットルームの詳細な説明 - リアルタイムチャット、画像プレビューのサポート
  • WeChatアプレットWebSocketチャットルームを実装するためのサンプルコード
  • WeChatアプレットチャットルームの簡単な実装
  • WeChatアプレットはシンプルなチャットルームを実装します

<<:  Windows 10 サブシステム Ubuntu (WSL) に Docker をインストールするチュートリアル (画像とテキスト付き)

>>:  複雑なSQLクエリを含むMySQLの一般的なSQL文の概要

推薦する

MySQL の基本クイックスタート知識のまとめ (マインドマップ付き)

目次序文1. データベースの基礎知識1. データベースとは何ですか? 2. データベースの分類3. ...

一般的な HBase 運用および保守ツール 10 個の概要

概要: HBase には、ユーザーに管理、分析、修復、デバッグ機能を提供するための多くの操作および保...

Centos7でmysql5.7.19のデータ保存場所を移動する方法

シナリオ: データ量が増加すると、MySQL が配置されているディスクがいっぱいになり、より大きなス...

HTMLを使用して、IPを制限する投票ウェブサイトの不正行為スキームを実装する

これは、IP アドレスが制限されている投票 Web サイトの不正行為の手口です。この方法は、投票 W...

Vue+video.jsはビデオプレイリストを実装します

この記事では、ビデオプレイリストを実装するためのvue + video.jsの具体的なコードを参考ま...

vue+elementui+vuex+sessionStorage を使用して履歴タグ メニューを実装するためのサンプル コード

一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...

MySQL の 6 つの一般的な制約タイプの詳細な説明

目次序文1.nullでない2. ユニーク3. デフォルト4.主キー自動増分主キー5. 外部キー6.チ...

Linux の 5 ステップ ビルド カーネル ツリー

目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...

HTML でのアンカーポイントの適用

アンカーポイントの設定<a name="トップ"></a>...

Centos8 は kdc 暗号化に基づいて nfs を構築します

目次構成nfs サーバー (nfs.skills.com) nfs クライアント (client.s...

Nginx ログ管理の概要

Nginx ログの説明アクセス ログを通じて、ユーザーの地理的起源、ジャンプ元、使用端末、特定の U...

Dockerでコンテナを作成するときのディレクトリ権限

昨日プロジェクトを書いていた時に、MySQL の派生版である Percona を使う必要があったので...

弾力性のあるナビゲーション効果を実現するJavaScript

この記事では、弾性ナビゲーション効果を実現するためのJavaScriptの具体的なコードを参考までに...

HTML テーブルに複雑なテーブル ヘッダーを実装するためのサンプル コード

複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...

CSS3でよく使われるスタイルの詳しい解説[基本的なテキストとフォントのスタイル]

概要: Web ページをより美しく見せるために、ここでは CSS3 でよく使用されるスタイルをいくつ...