跳到主要内容

使用 Demo

注意:Demo 只是用于演示 SDK 的引入与使用,并不是不是一个完整的应用。

我们强烈建议您首先运行我们为您准备的框架相关的示例 DEMO 。这不仅可以让您直观体验 OpenIM SDK 的功能,还将帮助您在实际集成过程中迅速定位和解决问题。

❗️常见问题

1. 仅开发 H5、小程序

  • 不开发 App 端的情况下,使用 uniapp 开发 h5 和 小程序直接使用 JSSDK不需要 参考下面步骤。

2. 使用 Uni 同时开发多端 ( APP、H5、小程序 )

  • 运行 iOS 和 Android 必须 安装原生插件,中间层 openim-uniapp-polyfill 结合 App 原生插件和 JSSDK 能力,兼容一套代码同时开发 APP、H5、小程序( SDK 和 im-server 版本 >= 3.8.2 )。

3. 关于依赖项

  • @openim/client-sdk : JSSDK,是运行 H5、小程序时必须的依赖项。

  • App 原生语言插件:运行 iOS 和 Android 时必须的依赖项。

  • openim-uniapp-polyfill : 必须安装, 统一封装 JSSDK 和原生插件, 兼容一套代码同时开发多平台。


⚙️ 集成步骤

1. 添加依赖

  • 使用 npm 安装依赖
npm install openim-uniapp-polyfill @openim/client-sdk

uni_import

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

uni_import_manifest

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、小程序 )

  • 注意1:监听器使用 uniapp 的方式调用监听器,传入 IMSDK.IMEvents 中的方法,因为 JSSDK 与 APP 的监听器大小写有区别 , npm 包中已经做自动转换。

  • 注意2:在部分 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:10001',
apiAddr: 'http://your-server-ip:10002',
});
// #endif

// #ifdef APP-PLUS
IMSDK.asyncApi('login', IMSDK.uuid(), {
userID: '123',
token: 'token',
});
// #endif

4. 🛠️ 本地开发

4.1 制作自定义调试基座

注意:包名需要与第一步引入云插件时设置的包名一致。

uni_build

4.2. 运行到自定义调试基座启动 ( iOS 仅支持在真机调试 )

本地进行 APP 端调试时,必须打包自定义基座,在启动自定义基座进行调试。

uni_run

5. 🚀 打包发布

APP 端打包发布时,使用 发行 -> 原生APP云打包。