SDK · uni-app
@imcore/sdk/uni-app 为 uni-app 提供类型化的 imcore API。它适配注入的
uni API 的异步存储、SocketTask、生命周期/网络事件和 uploadFile,不依赖
特定的 uni-app 渲染器。
安装
npm install ./imcore-sdk-js-<版本>.tgz
使用 uni-app 的常规工具构建各端。每个目标平台都要在其后台配置 IM 服务的
WebSocket 和上传请求合法域名;生产环境必须使用 wss:// 与 https://。
创建一个应用级客户端
import { createUniAppClient } from '@imcore/sdk/uni-app';
const im = createUniAppClient({
uni,
url: 'wss://im.example.com/acc',
auth: {
getToken: () => uni.getStorageSync('access_token'),
login: { userID: '1001', userName: 'alice' },
},
storageNamespace: '@my-app/im/1001/',
});
export default {
async onLaunch() {
await im.start();
},
};
start() 会监听 uni.onAppShow、uni.onAppHide 和
uni.onNetworkStatusChange。默认应用进入后台时释放连接,回到前台或网络恢复后
自动重连。退出登录时调用 im.stop();每个账号必须使用不同的
storageNamespace。
上传媒体
传入 uni.chooseImage、uni.chooseVideo 或目标平台文件选择器返回的临时路径;
返回的消息段可直接发送:
const picked = await uni.chooseImage({ count: 1 });
const uploaded = await im.media.upload({
file: picked.tempFilePaths[0],
type: 'image',
scene: 'dm',
targetUserID: '1002',
});
await im.dm.send({ targetUserID: '1002', segments: [uploaded.segment] });
上传地址默认从 WebSocket 地址推导。HTTP 上传端点使用不同域名时,传入
httpBaseUrl。