# 前端通信

平台提供了前端 SDK,用于开发者调用平台提供的能力

Release

SDK 下载地址 (opens new window)

# 导入和初始化

导入方式有两种,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>

# 监听和发送消息

处理消息有两种方法,添加事件监听器和直接异步发送消息并等待返回结果。

  1. 直接监听事件&直接发送消息
  • 支持接收来自平台主动推送的消息。
  • 支持发送没有响应结果的消息。
ac.addEventListener("GET_USER", (e) => {
  console.log(e.data.data.userId);
});
ac.send("GET_USER");
  1. 发送消息并等待返回结果

返回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}
Last Updated: 3/10/2022, 10:39:52 PM