微信小程序 UIKit

最近更新时间:2026-05-06 17:29:22

我的收藏

准备工作

1. 您需要一个微信小程序应用,这个应用可以是您现有的工程,也可以是您新建的一个空的工程。
2. 请确保您的微信小程序的基础库版本为 3.6.1 或更高版本。
3. SMH UIKit 以分包形式集成到您的小程序中。

操作步骤

步骤1:拷贝分包目录

从 cnb 根目录下 miniapp 目录下载 小程序分包代码,将所有文件拷贝到您小程序项目根目录下的 `smh-ui-kit/` 目录:
your-miniapp-project/
├── pages/ # 您的主包页面
│ └── index/
├── smh-ui-kit/ # 将 smh uikit 文件放到这里(整个目录)
├── app.js
├── app.json
└── project.config.json
注意:
请保持 smh-ui-kit/ 内部的文件结构不变,不要移动或删除其中的文件。

步骤2:配置分包路由

app.json 中添加分包配置:
{
"pages": [
"pages/index/index"
],
"subPackages": [
{
"root": "smh-ui-kit",
"pages": ["index"]
}
],
"window": {
"navigationStyle": "custom"
}
}

步骤3:注册 AccessTokenProvider

当前发布产物中的 smh-ui-kit/index.js 已经内置完成 SDK 初始化、全局方法挂载和页面注册;宿主侧不需要再手动 require('./smh-ui-kit/lib/miniApp.js') 或调用 initSDK() / initApp()
宿主只需要在打开页面前,将 AccessTokenProvider 注册到全局表:
if (!global._smhAccessTokenProviders) {
global._smhAccessTokenProviders = {};
}

function createSmhAccessTokenProvider() {
return function(callback) {
wx.request({
url: 'https://your-server.com/api/smh/token',
success: function(res) {
callback({
token: res.data.token,
accessToken: res.data.token,
startTime: res.data.startTime,
expiresIn: res.data.expiresIn
});
},
fail: function() {
callback({ errorMsg: '获取 Token 失败' });
}
});
};
}

步骤4:跳转到分包页面

通过路由参数传入 SmhConfigsmh_access_token_provider_key
function openSmhPage() {
var providerKey = 'provider_' + Date.now();
var smhConfig = {
host: 'https://xxx.api.tencentsmh.cn',
libraryId: 'your-library-id',
spaceId: 'your-space-id'
};

global._smhAccessTokenProviders[providerKey] = createSmhAccessTokenProvider();

wx.navigateTo({
url: '/smh-ui-kit/index?SmhConfig='
+ encodeURIComponent(JSON.stringify(smhConfig))
+ '&smh_access_token_provider_key='
+ encodeURIComponent(providerKey)
+ '&page_name=smh_netdisk'
});
}
其中:
SmhConfig:SMH 配置对象,SDK 会自动从路由参数中读取
smh_access_token_provider_key:用于在全局 provider 注册表中定位当前页面实例对应的 TokenProvider
page_name:可选,默认值为 smh_netdisk

SmhConfig 参数

参数
说明
类型
是否必填
host
SMH API 地址,如 https://xxx.api.tencentsmh.cn
String
libraryId
媒体库 ID
String
spaceId
空间 ID
String
path
初始 space 目录路径,默认根目录
String
userId
用户 ID(SMH 服务端概念)
String

AccessToken 参数

参数
说明
类型
是否必填
token
访问凭证
String
startTime
Token 起始时间(毫秒时间戳)
number
expiresIn
有效时长(秒)
number
说明:
startTimeexpiresIn 用于描述 Token 有效期。SDK 内部会优先复用未过期 Token,接入方无需额外管理 Token 生命周期。