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

离线插件方式

下载最新离线插件

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

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

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

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

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

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



export { openIM,event }

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

启动自定义调试基座

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

插件市场云插件方式

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

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

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

余下步骤同上离线插件方式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组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。

期盼已久全平台支持-开源IM项目OpenIM之uniapp更新的更多相关文章

  1. (数据科学学习手札86)全平台支持的pandas运算加速神器

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 随着其功能的不断优化与扩充,pandas已然成为 ...

  2. 【Asphyre引擎】Asphyre时隔3年,更名为PXL,全平台支持!

    ps:回忆日志 新版本10月初就推出了,我第一时间(10.2日更新,我当天就看到了)下载下来.发现部分Demo需要XE8才能编译通过,又去下载了一个XE8.折腾完已经深夜,只是粗粗的把Demo都编译了 ...

  3. 期盼已久的spring-net居然有新版本2.0.1-GA

    https://github.com/spring-projects/spring-net/tree/spring-net-2.0.1-GA https://www.nuget.org/package ...

  4. 可能是目前市面上唯一能够支持全平台的RTMP推流组件:Windows、Linux、Android、iOS、ARM

    EasyRTMP是什么? EasyRTMP是一套RTMP直播推送功能组件,内部集成了包括:基本RTMP协议.断线重连.异步推送.环形缓冲区.推送网络拥塞自动丢帧.缓冲区关键帧检索.事件回调(断线.音视 ...

  5. 全平台轻量开源verilog仿真工具iverilog+GTKWave使用教程

    前言 如果你只是想检查Verilog文件的语法是否有错误,然后进行一些基本的时序仿真,那么Icarus Verilog 就是一个不错的选择.相比于各大FPGA厂商的IDE几个G的大小,Icarus V ...

  6. ASP.NET Core 修改开源协议为MIT,.NET全平台 MIT协议开源了

    2021年7月23日,.NET开发团队完成了所有的.NET平台的相关框架的MIT协议更改,我们可以通过 https://github.com/dotnet/aspnetcore/issues/1887 ...

  7. ewebeditor下利用ckplayer增加html5 (mp4)全平台的支持

    学校数字化平台富文本编辑器一直用的ewebeditor,应该说非常的好,支持常用office文档的直接导入,极大的方便了老师们资料的上传,最近在规划整个数字化校园向全平台改版,框架采用bootstra ...

  8. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  9. 期待已久的2013年度最佳 jQuery 插件揭晓

    让人期待已久的2013年度最佳 jQuery 插件揭晓了.在过去的一年里,有很多很多的 jQuery 插件发布出来,而这里文章列出的这些插件从提供的功能更角度来看是其中的佼佼者.相信这些优秀的 jQu ...

  10. .NET平台下开源框架

    一.AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(asp ...

随机推荐

  1. socket.d.js v2.3.4 支持"微信"、"uniapp"

    Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议.有用户说,"Socket.D 之于 Socket,尤如 Vu ...

  2. C# async await 异步执行方法

    WPF 异步执行 Action<> Func<> https://www.cnblogs.com/vipsoft/p/4535037.html 代码如下 using Syste ...

  3. JQuery 弹出模态窗口

    index.html <!DOCTYPE html> <html> <head> <!-- Contact Form CSS files --> < ...

  4. Netty ChannelFuture 监听三种方法

    以下是伪代码 方法一 前后代码省略 //绑定服务器,该实例将提供有关IO操作的结果或状态的信息 ChannelFuture channelFuture = bootstrap.bind(); this ...

  5. 记录一次Java内存泄露分析过程

    版权说明: 本文章版权归本人及博客园共同所有,转载请在文章前标明原文出处( https://www.cnblogs.com/mikevictor07/p/13032635.html ),以下内容为个人 ...

  6. JSP开发模式(四种模式)

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 学习编程开发少不了学习开发模式, JSP在创立至今有 \(4\) 种流行的开发模式: 包括 JS ...

  7. ios ipa包上传需要什么工具

    ​ 目录 ios ipa包上传需要什么工具 前言 一.IPA包的原理 二.IPA包上传的步骤 1.注册开发者账号 2.apk软件制作工具创建应用程序 3.构建应用程序 4.生成证书和配置文件 5.打包 ...

  8. mvn 编译异常:Fatal error compiling: 无效的标记: -parameters

    错误信息: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin::compile (defaul ...

  9. Laravel - 使用ajax

    一,前台模板文件  index.blade.php <!DOCTYPE html> <meta name="_token" content="{{ cs ...

  10. [转帖]Jmeter接口测试:${__UUID()}函数

    UUID函数返回一个伪随机类型的通用唯一标识符ID. UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写.UUID是基于当前时间戳.随机数和硬件标识(例如 ...