跳到主要内容

🚀使用 Demo

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

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

❗️提示

1. 服务端准备

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

  • 最新的 npm 包已经支持在 uni-app 上开发多端应用了,但是需要使用较多的 条件编译 语法,建议开发前先参考 Demo ,里面展示了如何在跨端情况下进行开发。

3. 仅开发 H5/小程序

  • 使用 uniapp 开发 h5 和 小程序 (或原生小程序) 直接使用 纯 JS 版本 SDK不需要 参考下面步骤。

集成步骤

包含 APP 端开发,必须 按照下面的步骤,使用云插件导入 SDK ,使用 npm 包调用。因为 APP 端的实现方式都是通过 App 原生语言插件 实现。

1. 添加依赖

官方插件已上传至 dcloud 插件市场

  • 选择对应项目和包名引入 SDK

uni_import

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

uni_import_manifest

  • 下载 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 制作自定义调试基座

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

uni_build

4.2. 运行到自定义调试基座启动

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

uni_run

5. 🚀 打包发布

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