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文の概要

推薦する

Mysql5.7 サービスを開始できません。グラフィカル ソリューション チュートリアル

p>「サービス」で手動で起動すると、 コンソールから起動します: 次に、...\MySQL S...

複数のフィールドをグループ化するMySQLグループ

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...

Vue大画面表示適応方法

この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...

IE6 での背景画像キャッシュ

IE6 での CSS 背景画像のちらつきバグ (IE6 の背景画像キャッシュの問題) IE6 は、背...

TypeScript で時間を費やした場所の概要

TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...

MySql 学習 3 日目: データ テーブル間の接続とクエリの詳細

主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...

MySQL がデュアルマスターで構成されている場合にデータループの競合を回避する方法

あなたはこの質問について考えたことがあるでしょうか?デュアルアクティブが構成されている場合、データル...

JavaScript ベースのシンプルな計算機の実装

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

jsプロジェクトでの双方向データバインディングの簡単な実装方法

目次序文パブリッシュ・サブスクライバ・パターン結果電話要約する序文双方向データ バインディングとは、...

WeChatアプレット+EChartsで動的更新プロセス記録を実現

序文最近、小さなプログラムでリアルタイムにチャートを更新するという要件に遭遇しました。最初は wx-...

ローカル写真をアップロードする前にプレビューコード例を実装するための HTML5 と jQuery

HTML5 と jQuery はアップロード前にローカル画像のプレビューを実装しており、その効果は...

Webデザインと制作のテスト問題と参考回答

<br />Web デザインと制作テスト パート I 多肢選択問題 1. 単一選択問題 ...

MySQL 8.0.12 クイックインストールチュートリアル

MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...

HTMLページでチェックボックスを操作する方法

チェックボックスは Web ページで非常によく使用されます。e コマースの Web サイトでもプラッ...