# 前端通信
平台提供了前端 SDK,用于开发者调用平台提供的能力
# 导入和初始化
导入方式有两种,npm 包引入 或者 script 标签引入
# npm 包引入(推荐)
import SdkClient from "@assetcloud/asset-sdk";
// 初始化时可设定超时时间(秒)
const ac = new SdkClient(5);
await ac.init();
# script 标签引入
<script src="dist/sdk.umd.js"></script>
<script>
var ac = new ACSDK.SdkClient();
ac.init().then(function() {
console.log("SDK已初始化");
});
</script>
# 监听和发送消息
处理消息有两种方法,添加事件监听器和直接异步发送消息并等待返回结果。
- 直接监听事件&直接发送消息
- 支持接收来自平台主动推送的消息。
- 支持发送没有响应结果的消息。
ac.addEventListener("GET_USER", (e) => {
console.log(e.data.data.userId);
});
ac.send("GET_USER");
- 发送消息并等待返回结果
返回Promise
,如果平台返回值的success
字段为false
,会自动触发 reject。
try {
const res = await ac.sendAsync("GET_USER");
const { userId } = res.data.data;
} catch (error) {
console.error(error.data.msg);
}
返回结果类型
AssetCloudEvent<T extends AssetCloudMessage>
字段 | 类型 | 说明 | |
---|---|---|---|
data | data | AssetCloudMessageMap[T] | 承载数据 |
code | number | 状态码 | |
success | boolean | 是否成功 | |
msg | string | 返回消息 | |
type | T | 消息类型 |
# 前端可用消息
功能 | 消息类型 AssetCloudMessage | 请求参数 | 返回结果中 data 的格式 AssetCloudMessageMap[T] |
---|---|---|---|
获取用户 Id | GET_USER | 无 | { userId: string } |
获取用户账号 | GET_USER_PHONE | 无 | { phone: string } |
获取当前用户所属集团列表 | GET_GROUP | 无 | { groupIds: object[] } |
在浏览器打开新的标签页 | OPEN_TAB | 需要打开的 url, 如:"http://www.baidu.com" | — |
在平台打开应用 | OPEN_MENU | pcformlink:要跳转的链接地址 | { pcformlink:string } |
跳转到平台首页 | GO_HOME | 无 | — |
跳转到平台待办 | GO_TODO | 无 | — |
将当前页面全屏(整个屏幕全屏) | OPEN_FULLSCREEN | 无 | — |
获取当前应用入口菜单 | GET_MENU | 无 | object |
获取当前平台主题色 | GET_THEME | 无 | {theme: string} |