美文网首页
微信小程序快速集成腾讯IM

微信小程序快速集成腾讯IM

作者: Ths | 来源:发表于2025-05-07 11:01 被阅读0次

因为我们的项目使用的是原生的小程序开发,类似融云 环信 网易云信都是uniapp版本的,腾讯IM有个原生的带UI的,所以最后选择腾讯IM

腾讯IM文档 https://cloud.tencent.com/document/product/269/68376

  1. 考虑到主包空间有限,IM的UI框架比较大,建一个packageIM的分包,在app.json里subPackages增加
 {
      "root": "packageIM",
      "name": "packageIM",
      "pages": [
        "pages/im_customer/index"
      ]
}
  1. 在分包packageIM下新建package.json,然后安装, 构建 npm:微信开发者工具-工具-选择构建 npm
npm init 

npm i @tencentcloud/chat-uikit-wechat

在project.config.json文件配置分包的npm

"packNpmManually": true,
"packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./"
      },
      {
        "packageJsonPath": "./packageIM/package.json",
        "miniprogramNpmDistDir": "./packageIM/"
      },
      {
        "packageJsonPath": "./packageCommunity/package.json",
        "miniprogramNpmDistDir": "./packageCommunity/"
      }
],
  1. 将 TUIKit 文件夹复制到分包目录下,成功后的目录结构:


    image.png
  2. 分别在wxml、index.json、index.js里写

<view>
    <TUIKit config="{{config}}" conversationID='{{conversationID}}' id="TUIKit"></TUIKit>
</view>
{
  "usingComponents": {
    "TUIKit": "../../TUIKit/page/index"
  },
  "navigationStyle": "custom"
}
// packageIM/pages/im_customer/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    conversationID: '',
    user_id: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      user_id: options.user_id,
      conversationID: 'C2C' + options.user_id
    })
    const TUIKit = this.selectComponent('#TUIKit');
    TUIKit.init();
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})
  1. IM登录方法,这边需要后台配合绑定一下userid,具体的逻辑看你们自己的业务
import TIMUploadPlugin from 'tim-upload-plugin';
import TIMProfanityFilterPlugin from 'tim-profanity-filter-plugin';


IMLogin() {
    const userInfo = getApp().globalData.userInfo;
    console.log('IM:登录', userInfo)
    const userSig = userInfo.userSig;
    const userId = userInfo.userId;
    const SDKAppID = getApp().globalData.config.appInfo.IMAppID;
    if (userId && userSig) {
      // IM 处理
      wx.$TUIKit = TencentCloudChat.create({
        SDKAppID: SDKAppID,
      });
      wx.$chat_SDKAppID = SDKAppID;
      wx.TencentCloudChat = TencentCloudChat;
      wx.$chat_userID = userId;
      wx.$chat_userSig = userSig;
      wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });
      wx.$TUIKit.registerPlugin({ 'tim-profanity-filter-plugin': TIMProfanityFilterPlugin });
      wx.$TUIKit.login({
        userID: userId,
        userSig
      });
      // 监听系统级事件
      wx.$TUIKit.on(wx.TencentCloudChat.EVENT.SDK_READY, this.onSDKReady,this);
    }
  },

onSDKReady(event) {
    // 监听到此事件后可调用 SDK 发送消息等 API,使用 SDK 的各项功能。
    console.log('IM:监听到event事件',event)
  },
  1. 最后的效果如下


    IMG_9170.PNG

相关文章

  • 微信小程序云开发(一)

    什么是微信云开发 微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。 开发者可以使用云开发快速开发小程序、...

  • tim-js-sdk 登录、接收信息、发送消息

    简介 本文主要介绍如何快速地将腾讯云 IM SDK 集成到您的 Web 项目中。腾讯云即时通信IM SDK API...

  • 微信小程序集成腾讯AI

    最近有一个需要识别图片中文字的需求,引入腾讯ai并不难,复杂的地方在于要用云开发实现。所以在此记录一下,可以给需要...

  • 微信小程序(实战极速版)新手入门

    对腾讯火热推出的微信小程序进行超快的入门,快速掌握微信小程序的入门及基础知识学习技巧,并带您搞定一个网络博客小程序!

  • iOS集成环信的会话列表

    参考IOS快速集成环信IM - 基于官方的Demo优化,5分钟集成环信IM功能 虽然网上的教程很多,但是自己集成的...

  • 微信小程序如何接入腾讯MAT

    简言: 针对微信小程序而言,腾讯也推出了腾讯移动分析中的分类:微信小程序分析。 微信小程序分析可以分为六大类:1....

  • 环信小程序 Demo源码发布,让你的小程序聊起来

    微信小程序 Demo 环信准备了微信小程序 Demo,该 Demo 基于 Web IM SDK,并在其基础之上进行...

  • iOS微信登录快速集成步骤

    iOS微信登录快速集成步骤 iOS微信登录快速集成步骤

  • 小程序Cloud开发归纳

    小程序云开发 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务。开发者可以使用云开发快速开发小程序、小...

  • 2018-12-14

    iOS集成腾讯云IM 最近公司考虑集成腾讯云IM,由于时间紧张,所以就采用腾讯云自带的UI,但是发现集成进来后很多...

网友评论

      本文标题:微信小程序快速集成腾讯IM

      本文链接:https://www.haomeiwen.com/subject/xtejijtx.html