🚀使用 Demo
注意:Demo 只是用于演示 SDK 的引入与使用,并不是不是一个完整的应用。
我们强烈建议您首先运行我们为您准备的框架相关的示例 DEMO 。这不仅可以让您直观体验 OpenIM SDK 的功能,还将帮助您在实际集成过程中迅速定位和解决问题。
❗️提示
1. 服务端准备
- 如果使用到 纯 JS 版本 SDK ,服务端除了部署
OpenIM Server
还需要额外部署 OIMWS。
2. 使用 Uni 开发多端 ( APP、H5、小程序 )
- 最新的 npm 包已经支持在 uni-app 上开发多端应用了,但是需要使用较多的 条件编译 语法,建议开发前先参考 Demo ,里面展示了如何在跨端情况下进行开发。
3. 仅开发 H5/小程序
- 使用 uniapp 开发 h5 和 小程序 (或原生小程序) 直接使用 纯 JS 版本 SDK ,不需要 参考下面步骤。
集成步骤
包含 APP 端开发,必须 按照下面的步骤,使用云插件导入 SDK ,使用 npm 包调用。因为 APP 端的实现方式都是通过 App 原生语言插件 实现。
1. 添加依赖
官方插件已上传至 dcloud 插件市场
- 选择对应项目和包名引入 SDK
- 打开引入 SDK 项目根目录下
manifest.json
文件,选择 App 原生插件配置,选择云端插件进行导入。
- 下载 npm 包,简化对 SDK 的引入和使用,并封装 API 为 Promse 形式。
openim-uniapp-polyfill >= 1.3.0 以上版本在非 APP 端情况下使用 纯 JS 版本 SDK 。
npm install openim-uniapp-polyfill open-im-sdk
2. 在项目中引入 ( 纯 APP 项目 )
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('login', IMSDK.uuid(), {
userID: '123',
token: 'token',
});
const onConnectSuccess = () => {
// 连接成功
};
// 设置监听
IMSDK.subscribe(IMSDK.IMEvents.OnConnectSuccess, onConnectSuccess);
// 卸载监听
IMSDK.unsubscribe(IMSDK.IMEvents.OnConnectSuccess, onConnectSuccess);
3. 在项目中引入 ( APP、H5、小程序 )
需要使用云插件导入 SDK ,新版 npm 包在非 APP 端,使用 纯 JS 版本 SDK 。
注意1:
openim-uniapp-polyfill
版本需要 >= 1.3.0 ,open-im-sdk
版本需要 >= 3.5.1-alpha.8 。注意2:监听器使用 uniapp 的方式调用监听器,传入
IMSDK.IMEvents
中的方法,因为 JSSDK 与 APP 的监听器大小写有区别 , npm 包中已经做自动转换。注意3:在部分 API 中不同端可能因为平台的支持,用法上会有所区别,使用时查看对应平台 API 的文档,注意差别:
- 要根据平台去传入正确的 platformID
- Login API 参数不一致
- APP 端需要 initSDK 后才能使用
- 创建图片、视频消息使用的 API 不一致,要使用 条件编译 调用不同的方法
- 其他...
3.1 跨平台情况下使用方式
方法一 :跨平台参数和方法名一致情况下,使用 uniapp 的方式来调用。
- 此为多端兼容式写法,在跨平台情况下,要检查 API 返回内容结构是否一致。
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('createTextMessage', IMSDK.uuid(), 'text')
.then((data) => {
// do something
})
方法二 :跨平台参数和方法名不一致情况下,使用 条件编译 处理参数差异较大的方法。
import IMSDK from 'openim-uniapp-polyfill';
// #ifdef H5 || MP-WEIXIN
IMSDK.asyncApi('login', IMSDK.uuid(), {
userID : '123',
token: 'token',
platformID: 5,
wsAddr: 'ws://your-server-ip:10003',
apiAddr: 'http://your-server-ip:10002',
});
// #endif
// #ifdef APP-PLUS
IMSDK.asyncApi('login', IMSDK.uuid(), {
userID: '123',
token: 'token',
});
// #endif
4. 🛠️ 本地开发
4.1 制作自定义调试基座
注意:包名需要与第一步引入云插件时设置的包名一致。
4.2. 运行到自定义调试基座启动
本地进行 APP 端调试时,必须打包自定义基座,在启动自定义基座进行调试。
5. 🚀 打包发布
APP 端打包发布时,使用 发行 -> 原生APP云打包。