写点什么

期盼已久全平台支持 - 开源 IM 项目 OpenIM 之 uniapp 更新

作者:Geek_1ef48b
  • 2022 年 7 月 24 日
  • 本文字数:1649 字

    阅读完需:约 5 分钟

期盼已久全平台支持-开源IM项目OpenIM之uniapp更新

国内 uniapp 使用广泛,OpenIM 的 uniapp sdk 以及文档和 demo (https://github.com/OpenIMSDK/Open-IM-Uniapp-Demo)都已更新,本文主要展示如何打包、初始化、登录。


离线插件方式

  1. 下载最新离线插件


    git clone https://github.com/OpenIMSDK/Open-IM-SDK-Uniapp.git

  2. 将下载下来的Tuoyun-OpenIMSDK文件夹整个放入 uniapp 项目根目录下的nativeplugins文件夹下(若没有该文件夹则新建)。



  1. 打开 uniapp 项目根目录下manifest.json文件,打开 App 原生插件配置,选则本地插件进行导入。


  1. 在项目中引入 SDK 及监听器。


    const openIM = uni.requireNativePlugin("Tuoyun-OpenIMSDK");


    const event = uni.requireNativePlugin("globalEvent");



    export { openIM,event }

  2. 项目云打包自定义调试基座。



  1. 启动自定义调试基座


    需先选择运行基座为自定义调试基座



插件市场云插件方式

  1. 在 dcloud插件市场为 uniapp 项目绑定云插件。


    选择后需要绑定对应包名。



  1. 打开 uniapp 项目根目录下manifest.json文件,打开 App 原生插件配置,选则云端插件进行导入。



  1. 余下步骤同上离线插件方式4-6。


初始化 SDK

调用其他 API 之前必须先初始化 SDK。

im.initSDK(operationID, {                                           // operationID为随机字符串即可  用于定位问题      platform: Platform,                                           // 平台号 参考通用结构中Platform      api_addr: "http://121.37.25.71:10002",    // IM API地址      ws_addr: "ws://121.37.25.71:10001",           // IM Ws地址      data_dir:"data_dir",                                      // SDK数据存放目录(绝对路径)      log_level: 6,                                                     // SDK日志级别      object_storage: "minio",                              // 图片等资源储存方式 目前支持"minio"、"cos"    });
复制代码


设置监听

设置监听的时机必须在初始化之后,登录之前。

im.setUserListener();                   // 用户相关监听im.setFriendListener();             // 好友相关监听im.setGroupListener();              // 群聊相关监听im.setAdvancedMsgListener();  // 消息相关监听im.setConversationListener(); // 会话相关监听
复制代码


登录 IM

必须等待登录成功回调之后才能调用其他 API(除初始化和设置监听) 如获取好友列表等。注意一定要等待成功回调

im.login(    operationID,    // operationID为随机字符串即可  用于定位问题    userID,             // 用户ID    注意此userID要和token中的userID一致    token,              // 用户token  注意此token中的platform要和初始化的platform一致    (res) => {      if (res.errCode !== 0) {       // 登录失败      } else {        // 登录成功      }    }  );
复制代码

项目成果

从服务端到客户端 SDK 开源即时通讯(IM)整体解决方案,可以轻松替代第三方 IM 云服务,并能根据业务需求高度自定义和二次开发,打造具备聊天、社交、办公功能的 app。

OpenIM 继续领跑开源 IM 领域,在广大开发者的大力支持下,目前 github star 持续突破。越来越多的开发者把 OpenIM 应用在社交,协同办公领域。在运营过程中也暴露并修复了代码的一些 bug,由于使用场景广泛,OpenIM 越来越健壮,开源价值也凸显出来了。


github 地址: https://github.com/OpenIMSDK/Open-IM-Server

开发者中心:https://doc.rentsoft.cn/#/

OpenIM 是什么

OpenIM 是由 IM 技术专家打造的开源的由 golang 实现的即时通讯组件,目前 github 社区活跃,star 近万,排名遥遥领先,开发者 7000 人,力争开源 IM 项目 No1。支持 Android、iOS 原生开发,支持 Flutter、uni-app 跨端开发,支持小程序、React 等所有主流 web 前端技术框架, PC 支持 Electron,Flutter、iOS、uniapp 已有成熟 demo 可以体验。。OpenIM 包括 IM 服务端和客户端 SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成 OpenIM 组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

用户头像

Geek_1ef48b

关注

还未添加个人签名 2021.08.25 加入

还未添加个人简介

评论

发布
暂无评论
期盼已久全平台支持-开源IM项目OpenIM之uniapp更新_Geek_1ef48b_InfoQ写作社区