Maison interface Web uni-app Comment implémenter une session dans Uniapp

Comment implémenter une session dans Uniapp

Apr 06, 2023 am 08:57 AM

Avec le développement rapide de l'industrie de l'Internet mobile, la fonction de chat est devenue l'une des fonctions habituelles de nombreuses applications, et la conversation est la base du chat. Lorsque j'apprenais récemment la technologie Uniapp, j'ai découvert qu'Uniapp fournit également une API riche qui peut facilement implémenter des fonctions de session. Ici, en combinaison avec l'expérience d'apprentissage de l'auteur, je partagerai comment uniapp implémente la conversation.

1. Concepts de base

Avant de commencer à implémenter la fonction de conversation, comprenons les concepts de base de la conversation. Une session est une série de processus interactifs entre un objet de session du début à la fin. Dans les applications de chat, un objet de conversation comprend généralement des enregistrements de discussion entre deux ou plusieurs personnes, classés par ordre chronologique.

2. Construction du projet

Cet article utilisera le framework uniapp et l'environnement uniCloud comme exemple pour présenter le processus de mise en œuvre de la session. Tout d’abord, nous devons créer un projet Uniapp. Les étapes spécifiques sont les suivantes :

  1. Créez un nouveau projet uniapp dans HBuilderX et sélectionnez uniCloud comme environnement serveur.
  2. Dans le fichier manifest.json, configurez les autorisations de requête réseau, le style de la barre de navigation, etc.
  3. Dans le dossier des pages, créez un nouveau dossier de discussion pour stocker les pages et les composants liés au chat.

3. Implémentation de la fonction

  1. Authentification de connexion

Avant d'implémenter la fonction de session, nous devons d'abord effectuer l'opération d'authentification de connexion. UniCloud propose deux méthodes de connexion avec compte et mot de passe et connexion WeChat. Nous pouvons effectuer les sélections correspondantes sur la page de connexion et appeler l'API d'UniCloud pour terminer l'opération de connexion. Après une connexion réussie, les informations du membre seront stockées localement ou dans UniCloud.

  1. Obtenir la liste de discussion

Obtenir la liste de discussion est une étape importante pour mettre en œuvre la fonction de conversation. Dans cet article, nous utiliserons les fonctions cloud fournies par UniCloud pour l'implémenter. Tout d'abord, créez une nouvelle fonction cloud sur la plateforme UniCloud et nommez-la « getChatList ». Dans la fonction cloud, nous pouvons interroger les informations de la liste de discussion de l'utilisateur et renvoyer les données au format JSON au front-end.

Exemple de code de fonction Cloud :

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
  const collection = db.collection('chatList')
  const res = await collection.where({
    openid: event.openid
  }).get()
  return res.data
};
Copier après la connexion

Dans la page frontale, nous pouvons appeler l'API de la fonction cloud d'UniCloud pour obtenir les données de la liste de discussion. Dans le dossier de discussion, créez un nouveau fichier chatlist.vue pour afficher la liste de discussion de l'utilisateur. Utilisez le composant uni-list pour afficher la liste de discussion.

  1. Mise en œuvre de la page de chat

Lorsque nous cliquons sur un enregistrement de chat dans la liste de chat, nous devons accéder à la page de chat et afficher le contenu du chat. Dans le dossier de discussion, nous créons un nouveau fichier chat.vue pour implémenter la fonction d'interaction par chat. Les étapes spécifiques de mise en œuvre sont les suivantes :

(1) En transmettant les informations utilisateur et les informations sur l'objet de discussion, appelez la fonction cloud pour obtenir l'enregistrement de discussion et l'afficher.

(2) Utilisez le composant uni-input pour implémenter la zone de saisie du message.

(3) Utilisez le composant uni-list et le composant uni-message pour implémenter l'affichage de la liste de messages.

(4) Implémentez la fonction d'envoi de messages en appelant les fonctions cloud et affichez le message dans la page de discussion en temps réel.

Exemple de code de page de discussion :

<template>
  <view class="chat-page">
    <view class="chat-messages">
      <view v-for="(message,index) in messages" :key="index" :class="[&#39;chat-message&#39;,userOpenid===message.openid?&#39;right&#39;:&#39;left&#39;]">
        <view v-if="userOpenid!==message.openid" class="avatar">
          <image class="avatar-img" :src="friendInfo.avatarUrl"></image>
        </view>
        <view class="message-info">
          <view class="message-content">
            <template v-if="message.type===&#39;text&#39;">{{message.content}}</template>
          </view>
        </view>
        <view v-if="userOpenid===message.openid" class="avatar">
          <image class="avatar-img" :src="userInfo.avatarUrl"></image>
        </view>
      </view>
    </view>
    <view class="chat-input">
      <uni-input type="text" v-model="inputContent" @confirm="sendMessage" placeholder="请输入"/> 
    </view>
  </view>
</template>
<script>
import { uniCloud } from 'wx-resource'
import { mapState } from 'vuex'
import socket from '@/utils/socket.js'
export default {
  data() {
    return {
      messages: [],
      inputContent: ''
    }
  },
  computed: {
    ...mapState(['userInfo','friendInfo'])
  },
  onLoad() {
    this.getChatList()
  },
  methods: {
    async getChatList() {
      const res = await uniCloud.callFunction({
        name: 'getChatList',
        data: {
          openid: this.userInfo.openid,
          friendOpenid: this.friendInfo.openid
        }
      })
      this.messages = res.result
    },
    async sendMessage() {
      if (this.inputContent === '') {
        return
      }
      socket.emit('chat message', {
        openid: this.userInfo.openid,
        friendOpenid: this.friendInfo.openid,
        content: this.inputContent.trim(),
        type: 'text'
      })
      this.inputContent = ''
    }
  },
  created() {
    socket.on('chat message', message => {
      this.messages.push(message)
    })
  }
}
</script>

<style>
.chat-page {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.chat-messages {
  flex: 1;
  overflow-y: scroll;
}
.chat-message {
  display: flex;
  margin: 10px;
  max-width: 60%;
}
.chat-message .avatar {
  margin-right: 10px;
}
.chat-message .message-info {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  flex-grow: 1;
  max-width: 80%;
}
.chat-message.right .message-info {
  align-items: flex-end;
}
.chat-message .avatar-img {
  display: block;
  border-radius: 50%;
  width: 40px;
  height: 40px;
}
.message-content {
  word-wrap: break-word;
  white-space: pre-wrap;
  background-color: #eee;
  padding: 7px;
  border-radius: 10px;
}
.chat-input {
  padding: 10px;
  background: #fff;
}
</style>
Copier après la connexion

IV. Résumé

Grâce à l'introduction de cet article, nous comprenons comment uniapp implémente la fonction de session et montre le code spécifique pour implémenter la page de discussion. Au cours du processus de développement proprement dit, nous pouvons également étendre et optimiser ces fonctions en fonction de nos propres besoins. J'espère que cela pourra être utile à tout le monde dans le développement d'Uniapp.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les API de partage social de l'Uni-App? Comment utiliser les API de partage social de l'Uni-App? Mar 13, 2025 pm 06:30 PM

L'article détaille comment intégrer le partage social dans les projets Uni-App à l'aide de l'API Uni.share, couvrant la configuration, la configuration et les tests sur des plateformes comme WeChat et Weibo.

Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Comment utiliser des préprocesseurs (Sass, moins) avec Uni-App? Mar 18, 2025 pm 12:20 PM

L'article discute de l'utilisation de SASS et moins de préprocesseurs dans UNI-APP, de la configuration de détail, des avantages sociaux et de la double utilisation. L'accent principal est sur la configuration et les avantages. [159 caractères]

Comment utiliser l'API d'animation Uni-App? Comment utiliser l'API d'animation Uni-App? Mar 18, 2025 pm 12:21 PM

L'article explique comment utiliser l'API d'animation d'Uni-App, détaillant les étapes pour créer et appliquer des animations, des fonctions clés et des méthodes pour combiner et contrôler la synchronisation de l'animation. Count de chargement: 159

Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Quels sont les différents types de tests que vous pouvez effectuer dans une application UNIAPP? Mar 27, 2025 pm 04:59 PM

L'article traite de divers types de tests pour les applications UNIAPP, y compris l'unité, l'intégration, les tests fonctionnels, UI / UX, les performances, la plate-forme multiplateforme et la sécurité. Il couvre également une compatibilité multiplateforme et recommande des outils comme JES

Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Comment pouvez-vous réduire la taille de votre package d'application UNIAPP? Mar 27, 2025 pm 04:45 PM

L'article traite des stratégies pour réduire la taille du package UNIAPP, en se concentrant sur l'optimisation du code, la gestion des ressources et les techniques comme le fractionnement du code et le chargement paresseux.

Comment utiliser l'API de stockage Uni-App (Uni.SetStorage, Uni.getStorage)? Comment utiliser l'API de stockage Uni-App (Uni.SetStorage, Uni.getStorage)? Mar 18, 2025 pm 12:22 PM

L'article explique comment utiliser les API de stockage Uni-App (Uni.SetStorage, Uni.getStorage) pour la gestion des données locales, discute des meilleures pratiques, dépannage et met en évidence les limitations et les considérations pour une utilisation efficace.

Quelle est la structure de fichiers d'un projet Uni-App? Quelle est la structure de fichiers d'un projet Uni-App? Mar 14, 2025 pm 06:55 PM

L'article détaille la structure des fichiers d'un projet Uni-App, expliquant des répertoires clés comme Common, Components, Pages, Static et Unicloud, et des fichiers cruciaux tels que App.vue, Main.js, Manifest.json, Pages.json et Uni.scss. Il explique comment cet O

Quels outils de débogage sont disponibles pour le développement UNIAPP? Quels outils de débogage sont disponibles pour le développement UNIAPP? Mar 27, 2025 pm 05:05 PM

L'article traite des outils de débogage et des meilleures pratiques pour le développement de l'UNIAPP, en se concentrant sur des outils comme HBuilderx, WeChat Developer Tools et Chrome Devtools.

See all articles