@assetcloud/asset-sdk
v2.1.12
Published
资产云前端SDK
Downloads
18
Readme
资产云前端 SDK
注意:
资产云前端SDK,利用postMessage进行跨iframe的安全数据请求。用于获取用户id等基础信息,或者请求平台前端进行某些操作。
SDK采用TypeScript开发,采用npm包引入可以自动获得完善的类型定义和代码自动补全。
快速开始
引入和初始化
可以使用script标签或者npm包两种方式进行引入。
- npm包安装(推荐)
可以使用ES7
async/await
语法简化异步调用import SdkClient from "@assetcloud/asset-sdk"; // 初始化时可设定超时时间(秒) const ac = new SdkClient(5); await ac.init();
- script标签引入
<!-- 将包内dist/sdk.umd.js复制到项目中合适的位置 --> <script src="path/to/sdk.umd.js"></script> <script> var ac = new ACSDK.SdkClient(); ac.init().then(function() { console.log("SDK已初始化"); }); </script>
注意:在构建工具(如Webpack)中直接使用script标签引入,需要以正确的顺序排列script标签,不然会找不到变量。如果需要在引用npm包的情况下使用script标签的全局变量,可以通过配置外部依赖的方式使用。
// webpack.config.js(或vue.config.js) module.exports = { //... externals: { "@assetcloud/asset-sdk": "ACSDK" }, }; // OK import SdkClient from "@assetcloud/asset-sdk"; const ac1 = new SdkClient(); // OK, 全局变量依然可以使用 const ac2 = new ACSDK.SdkClient();
监听和发送消息
处理消息有两种方法,添加事件监听器和直接异步发送消息并等待返回结果。
直接监听事件&直接发送消息
支持接收来自平台主动推送的消息。 支持发送没有响应结果的消息。
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>
前端可用消息
| 功能 | 消息类型 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" | — |
| 跳转到平台首页 | GO_HOME | 无 | — |
| 跳转到平台待办 | GO_TODO | 无 | — |
| 将当前页面全屏(整个屏幕全屏) | OPEN_FULLSCREEN | 无 | — |
| 获取当前应用入口菜单 | GET_MENU | 无 | object
|