npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@envision-digital/enos-app-portal-sdk

v0.1.12

Published

App portal SDK

Downloads

17

Readme

ENOS-APP-PORTAL 前端 SDK

Installation

前端 SDK 基于 NPM,安装方式如下

yarn add enos-app-portal-sdk

或者

npm install enos-app-portal-sdk

渲染规则

如果在中文环境下选择进入 appId 为 ”“, menuCode 为 ""的应用,并且 state 为""的应用菜单,内容 window location 为:

https:<domain>/<配置的menu-URL>?appId=<appId>&menuCode=<menuCode>&categoryId=<categoryId>&state=<state>&locale=zh-CN

其中:categoryId 指的是应用所在的分类的 id,比如光伏为 22

API

框架本身提供 API,供内部 App 调用,主要用于用户信息获取和页面操作等 需要引入 SDK 模块。 此 SDK 时基于单向的 window 之间 Postmessage 和 Promise 搭建的 Iframe 之间双向数据通道,所以,所有 API 均返回Promise

import appPortalSDK from 'enos-app-portal-sdk';

1.getUserInfo

获取当前用户信息

调用示例

appPortalSDK.getUserInfo()

返回示例

{
  "accessToken": "APP_PORTAL_S_zv7dFSHmevr6Xs64fGKm4MbKSRe79qeW",
  "createdTime": "2019-05-14 08:38:31.0",
  "company": "",
  "department": "",
  "description": "test",
  "domain": "",
  "email": "[email protected]",
  "id": "u15578231118721",
  "isInitPassword": false,
  "name": "portal_test01",
  "nickName": "quququ",
  "organization": {
    "id": "o15578227985571",
    "name": "portal_test01"
  },
  "phone": "123232323",
  "phoneArea": "",
  "position": "",
  "theme": "DARK"
}

2.getAppInfo

获取应用信息

调用示例, 调用当前应用信息

appPortalSDK.getAppInfo()

返回示例

{
  "category": {
    "id": 21,
    "name": "Wind"
  },
  "code": "Wind",
  "createdTime": "2019-05-14 08:38:31.0",
  "createdType": null,
  "description": "Wind",
  "descriptionJson": {
    "default": "wind",
    "en_US": "wind",
    "es_ES": "wind",
    "ja_JP": "wind",
    "zh_CN": "wind"
  },
  "id": "123",
  "isDisplay": true,
  "isEnable": true,
  "isNewNavigation": true,
  "isShortcut": true,
  "menus": [
    {
      "additionType": 0,
      "children": [
        {
          "additionType": 0,
          "children": null,
          "code": "view",
          "createdTime": "2019-05-14 08:38:31.0",
          "displayOrder": 12,
          "icon": "icon-web1",
          "id": "ut incididunt ex",
          "jumpLocation": null,
          "name": "ullamco veniam",
          "nameJson": {
            "default": "ullamco veniam",
            "en_US": "ullamco veniam",
            "es_ES": "ullamco veniam",
            "ja_JP": "ullamco veniam",
            "zh_CN": "ullamco veniam"
          },
          "parentId": "24cb078c-a119-4fa9-aad8-7f161a2b53f2",
          "sourceApp": null,
          "url": "laborum aute minim mollit laboris"
        }
      ],
      "code": "wyfMenu1",
      "createdTime": "2019-05-14 08:38:31.0",
      "displayOrder": 1,
      "icon": "icon-instance1",
      "id": "24cb078c-a119-4fa9-aad8-7f161a2b53f2",
      "jumpLocation": null,
      "name": "wyfMenu1",
      "nameJson": {
        "default": "wyfMenu1",
        "en_US": "wyfMenu1",
        "es_ES": "wyfMenu1",
        "ja_JP": "wyfMenu1",
        "zh_CN": "wyfMenu1"
      },
      "parentId": "",
      "sourceApp": null,
      "url": "/xxxxx/"
    }
  ],
  "name": "wind",
  "nameJson": {
    "default": "wind",
    "en_US": "wind",
    "es_ES": "wind",
    "ja_JP": "wind",
    "zh_CN": "wind"
  },
  "order": 0,
  "permissions": [
    {
      "additionType": null,
      "children": null,
      "code": "adipisicing",
      "createdTime": "2019-05-14 08:38:31.0",
      "displayOrder": 1,
      "icon": null,
      "id": "cillu",
      "jumpLocation": null,
      "name": "magna",
      "nameJson": {
        "default": "magna",
        "en_US": "magna",
        "es_ES": "magna",
        "ja_JP": "magna",
        "zh_CN": "magna"
      },
      "parentId": "",
      "sourceApp": null,
      "url": ""
    }
  ],
  "sourceApp": null,
  "status": true,
  "structures": null,
  "type": null,
  "url": null
}

3.getAppAssets

返回当前 app 对应的资产树

调用示例

appPortalSDK.getAppAssets(); // 不包含关联资源
appPortalSDK.getAppAssets(true); // 包含关联资源
appPortalSDK.getAppAssets(false, ['all']); // 指定返回的资源类型,缺省时默认值为['auth_unit', 'logic_unit'],可按ou配置

返回示例

{
  "associatedResources": [], // 关联资源
  "children": [
    {
      "associatedResources": [], // 关联资源
      "children": [
        {
          "associatedResources": [], // 关联资源
          "children": [],
          "displayOrder": 0,
          "id": "a112233",
          "name": "node-1-1",
          "nameJson": {
            "default": "node-1-1",
            "en_US": "node-1-1",
            "es_ES": "node-1-1",
            "ja_JP": "node-1-1",
            "zh_CN": "node-1-1"
          },
          "parentId": "",
          "tag": null,
          "tags": []
        }
      ],
      "displayOrder": 0,
      "id": "a1122",
      "name": "tree-node-1",
      "nameJson": {
        "default": "tree-node-1",
        "en_US": "tree-node-1",
        "es_ES": "tree-node-1",
        "ja_JP": "tree-node-1",
        "zh_CN": "tree-node-1"
      },
      "parentId": "",
      "tag": "auth-unit",
      "tags": []
    }
  ],
  "displayOrder": 0,
  "id": "a11",
  "name": "asset-tree",
  "nameJson": {
    "default": "asset-tree",
    "en_US": "asset-tree",
    "es_ES": "asset-tree",
    "ja_JP": "asset-tree",
    "zh_CN": "asset-tree"
  },
  "parentId": "",
  "tag": null,
  "tags": [
    {
      "id": "xnka",
      "key": "name",
      "structureId": "aefas",
      "value": "auiqknd"
    }
  ]
}

4.getLocale

获取当前语言信息

调用示例

appPortalSDK.getLocale();
‘en-US’ // 'zh-CN'

5.switchPage

APP 跳转页面

调用示例

appPortalSDK.switchPage({
    appId: xxx,
    appCode: xxxx, //开发者注册应用时,所填写的应用唯一标识符, appId 和 appCode 二选一, appCode优先级高于appI
    menuCode: xxx,
    openOnNewTab: false, // 是否在新窗口打开菜单
    state:xxx, // 会在绘制ifreame的时候加入url的query中
    addToVisitRecord: false, // 是否添加到最近访问记录
    viewMode: 2 // 大屏模式,隐藏菜单和顶部导航
})

返回示例

true

6.setNotificationUrl

设置消息窗口

调用示例

appPortalSDK.setNotificationUrl(’https://xxx.xxx/ss.html‘)

返回示例

true

7.setHelpUrl

设置帮助信息

调用示例

appPortalSDK.setHelpUrl('https://xxx.xxx/ss.html');

返回示例

true

8.logout

调用示例

appPortalSDK.logout();

9.设置显示模式

setViewMode()

调用示例

appPortalSDK.setViewMode(0); // 默认模式,菜单和顶部导航都显示
appPortalSDK.setViewMode(1); // 隐藏菜单模式,不可点击显示菜单
appPortalSDK.setViewMode(2); // 大屏模式,隐藏菜单和顶部导航
appPortalSDK.setViewMode(3); // 隐藏菜单模式,可点击显示菜单
appPortalSDK.setViewMode(4); // 隐藏顶部导航

10. 显示/隐藏菜单(保留用户可点击按钮)

调用示例

appPortalSDK.toggleMenu(boolean); // true / false

11.打开外部链接

openLink(link)

12.获取当前支持的语言列表

getAvailableLocales()

13. 获取当前主题

getTheme()

14.getStructureByApp

返回用户在当前app内的可见组织结构列表

调用示例

appPortalSDK.getStructureByApp();

返回示例

[
  {
    "id": "a1232-123123123",
    "parentId": "",
    "name": "asset-1",
    "displayOrder": 0,
    "description": "ajkxnamedyh"
    "tags": {
      "key1": "value1"
    }
  }
]

15.getStructureByDetail

返回可见组织结构的资产详情, 与getStructureByApp搭配使用可用于切换资产树

调用示例

appPortalSDK.getStructureByDetail(structureRootId); // 不包含关联资源
appPortalSDK.getStructureByDetail(structureRootId, true); // 包含关联资源

返回示例

同3.getAppAssets

16.setBeforeLeave

设置页面离开前二次确认弹窗信息

调用示例

appPortalSDK.setBeforeLeave(true, 'xxxxxx'); // 页面离开前需要二次确认弹窗,弹窗自定义提示信息“xxxxxx”
appPortalSDK.setBeforeLeave(false); // 页面离开前不需要二次确认弹窗(默认状态)

17.useDrawer

唤起App Portal抽屉

调用示例

appPortalSDK.useDrawer(urlData, componentData);
urlData = {
  url: 'xxxx', // 抽屉内部打开的页面地址
  openNewUrl: 'xxxxxxxxxx' // 点击新页面打开按钮时在浏览器新页面打开的页面地址
}
componentData = {
  placement: 'right', // 'bottom'/'right', 默认bottom
  title: 'title',
  subTitle: 'subTitle',
  width: '60%', // placement='right'时设置有效, 默认'70%'
  height: '60%', // placement='bottom'时设置有效, 默认'80%'
  showNewOpen: false, // 是否展示新页面打开按钮, 默认true
  theme: 'WHITE', // 'DARK'/'WHITE', 默认为App Portal当前主题色
  maskClosable: 'true', // 点击遮罩层时抽屉是否可关闭, 默认false
  destroyOnClose: 'false' // 关闭时是否销毁抽屉内部子元素, 默认true
}

关闭App Portal抽屉

调用示例

appPortalSDK.useDrawer();

18.useModal

唤起App Portal弹窗

调用示例

appPortalSDK.useModal(urlData, componentData, type = 1);
urlData = {
  url: 'xxxx', // 弹窗内部打开页面地址
}
componentData = {
  title: 'title',
  size: 'large', // 'small'/'medium'/'large', 弹窗大小, 用于设置宽度, 默认medium
  height: 340, // 弹窗内容高度, 设置后弹窗高度范围为200px-600px, 若超出或不足弹窗高度范围, 按极值展示
  theme: 'WHITE', // 'DARK'/'WHITE', 默认为App Portal当前主题色
  maskClosable: 'true', // 点击遮罩层时弹窗是否可关闭, 默认false
  destroyOnClose: 'false' // 关闭时是否销毁弹窗内部子元素, 默认true
}
type = 1 / 2 // 1代表普通弹窗,2代表二次确认弹窗

关闭App Portal弹窗

调用示例

appPortalSDK.useModal();

19.showMessage

展示接口调用的提示信息

调用示例

appPortalSDK.showMessage(type = 'success', 'message'); // type = 'success'/'failed'/'warning'

20.setConfig

开启lite模式

调用示例

appPortalSDK.setConfig({
  appId: 'abcd', // 必须
  liteMode: true, // 必须
  token: 'efgh' // 可选,不传时会从localStorage中取值,key值与原sdk保持一致
});

21.getVisitRecords

获取最近访问记录

调用示例

appPortalSDK.getVisitRecords()

返回示例

[
  {
    "appId": "abcd"
    "menuCode": "menu21"
    "menuName": "menu21"
    "url": "defg"
  }
]

22.useWindow

唤起App Portal悬浮窗口

调用示例

appPortalSDK.useWindow(winConfig);
winConfig = {
  code: 'xxxx', // 悬浮窗口组件标识码,必填
  url: 'xxxx', // 悬浮窗口内部打开页面地址
  width: 480,
  height: 320,
  top: 50,
  right: 20,
  bottom: 50, // 和top一同配置时取top值
  left: 20, // 和right一同配置时取left值
  autoDestroy: false, // 页面跳转时自动销毁浮动窗口,默认true
  mask: true, // 是否需要遮罩层, 默认false
  visible: true, // 显示悬浮窗口组件, 默认false
  undisturbed: true, // 是否需要免打扰提示, 默认true
  undisturbedAfterTimes: 2 // 触发免打扰需要的次数, 默认3
}

关闭App Portal悬浮窗口

调用示例

appPortalSDK.useWindow({code: 'xxxx'});

获取App Portal悬浮窗口数据

调用示例

appPortalSDK.getWindowData({code: 'xxx', incrementalUpdate: true}); // 增量数据
appPortalSDK.getWindowData({code: 'xxx'}); // 全部数据

23.setLocale

设置语言

调用示例

appPortalSDK.setLocale('en-US');

版本依赖

SDK版本 | app portal版本 ---------|---------- 0.1.12 | >=2.4.6-r-2 0.1.11 | >=2.4.6-r-1 0.1.10 | >=2.4.9 0.1.7 | >=2.4.8 0.1.6 | >=2.4.7 0.1.1 | >=2.4.4 0.0.16 | >=2.3.14 0.0.15 | >=2.3.10

Release Notes:

v0.1.12

  1. 增加useWindow和getWindowData方法。
  2. 增加一种新的显示模式,viewMode值对应是4。
  3. 增加setLocale方法。

v0.1.11

  1. switchPage方法增加viewMode参数,支持切换页面时指定显示模式。
  2. 增加一种新的显示模式,viewMode值对应是3。

v0.1.10

  1. getAppAssets方法增加参数可指定返回的资源类型。缺省时默认值为['auth_unit', 'logic_unit'],可按ou配置,传['all']代表需要全部类型。

v0.1.9

  1. 更新readme。

v0.1.8

  1. 修复跨域错误。

v0.1.7

  1. lite版getUserInfo方法增加邮箱RSA解密。
  2. 修改getAppAssets和getStructureByDetail方法调用示例。
  3. 增加getVisitRecords方法用以获取新版导航下最近访问记录。

v0.1.6

  1. getAppAssets和getStructureByDetail方法增加参数可请求关联资源,默认值为false不请求关联资源。

v0.1.5

  1. 修复lite模式token丢失问题。

v0.1.4

  1. 修复lite版getAppAssets方法在重复调用时报promise方法错误拿不到数据问题。
  2. 更新readme,补充开启lite模式示例。

v0.1.3

  1. 修复因v0.1.1内部传参方式变化引起的getStructureByDetail、setBeforeLeave、setHelpUrl、setNotificationUrl、setPageTitle、setViewMode、showMessage、toggleMenu、useDrawer、useModal和switchPage方法失效问题。
  2. 增加lite版本,开启后在App Portal同域下可由sdk直接请求接口获取对应数据。lite版支持的方法有getAppAssets、getAppInfo、getAvailableLocales、getLocale、getStructureByApp、getStructureByDetail、getTheme、getUserInfo和openLink。

v0.1.2

  1. 更新getUserInfo、getAppInfo和getAppAssets方法返回示例。

v0.1.1

  1. switchPage方法增加入参addToVisitRecord,用于决定切换页是否需要添加到最近访问记录中
  2. 优化通信方式,当应用与app portal不跨域时直接获取挂载在window上的数据

v0.0.17

  1. 修复当存在多层app portal时,无法获取到期望app portal的数据的bug

V0.0.16

  1. add useDrawer function and useModal function
  2. add showMessage function

V0.0.15

  1. add getStructureByApp function and getStructureByDetail function
  2. add setBeforeLeave function

V0.0.14

  1. 添加兼容性处理
  2. 此版本建议配合 GA2.2.0版本App Portal 使用

V0.0.13

  1. add getTheme function

v0.0.11

  1. add getAvailableLocales function
  2. remove 404 check

v0.0.9

  1. 当app portal 不是顶层window的时候,没法接受信息bug
  2. 修改随机数规则,防止同一个Promise.all 调用多次相同方法key一致的问题

v0.0.5

  1. 增加 switchPage 在新窗口打开菜单选项
  2. 添加 openLink 选项

V0.0.4

  1. 页面跳转支持通过应用CODE跳转

V0.0.3

  1. 增加 toggleMenu 接口

v0.0.2

  1. 混淆压缩代码
  2. 添加检验机制,检验是否在 APP-PORTAL 中使用,如果不是理解 reject
  3. 代码结构调整

v0.0.

  1. 提供基于 ES5 的 SDK Module
  2. 新增大屏全屏模式接口
  3. 改变菜单 URL 配置规则,可配置相对路径
  4. 渲染添加 appId,menuCode, categoryId,locale 参与在内容 query 中
  5. 优化加载和调用速度
  6. 修改 readme 信息

=========================

ENOS-APP-PORTAL Frontend SDK

Installation

Front end SDK is based on NPM, and the installation method is as follows:

yarn add enos-app-portal-sdk

OR

npm install enos-app-portal-sdk

Rendering rules

If you are using a Chinese environment, appId refers to the "", menuCode refers to the "" application, state refers to the "" application menu, and the content window URL is:

https:<domain>/<configured menu-URL>? appId=<appId>&menuCode=<menuCode>&categoryId=<categoryId>&state=<state>&locale=zh-CN

Note: categoryId refers to the ID of the category of the application ID. For example, the category ID for solar is 22.

API

The framework itself provides APIs that can be called by internal apps. They are mainly used for user information acquisition or page operations. You need to connect the SDK module. This development tool will create a promised data channel which is based on the postmessage API and ES6 promise.

import appPortalSDK from 'enos-app-portal-sdk';

1.getUserInfo

Acquire current user's information

Call example

appPortalSDK.getUserInfo()

Return example

{
  "accessToken": "APP_PORTAL_S_zv7dFSHmevr6Xs64fGKm4MbKSRe79qeW",
  "createdTime": "2019-05-14 08:38:31.0",
  "company": "",
  "department": "",
  "description": "test",
  "domain": "",
  "email": "[email protected]",
  "id": "u15578231118721",
  "isInitPassword": false,
  "name": "portal_test01",
  "nickName": "quququ",
  "organization": {
    "id": "o15578227985571",
    "name": "portal_test01"
  },
  "phone": "123232323",
  "phoneArea": "",
  "position": "",
  "theme": "DARK"
}

2.getAppInfo

Acquire app information

Call example, where the current app's information is called

appPortalSDK.getAppInfo()

Return example

{
  "category": {
    "id": 21,
    "name": "Wind"
  },
  "code": "Wind",
  "createdTime": "2019-05-14 08:38:31.0",
  "createdType": null,
  "description": "Wind",
  "descriptionJson": {
    "default": "wind",
    "en_US": "wind",
    "es_ES": "wind",
    "ja_JP": "wind",
    "zh_CN": "wind"
  },
  "id": "123",
  "isDisplay": true,
  "isEnable": true,
  "isNewNavigation": true,
  "isShortcut": true,
  "menus": [
    {
      "additionType": 0,
      "children": [
        {
          "additionType": 0,
          "children": null,
          "code": "view",
          "createdTime": "2019-05-14 08:38:31.0",
          "displayOrder": 12,
          "icon": "icon-web1",
          "id": "ut incididunt ex",
          "jumpLocation": null,
          "name": "ullamco veniam",
          "nameJson": {
            "default": "ullamco veniam",
            "en_US": "ullamco veniam",
            "es_ES": "ullamco veniam",
            "ja_JP": "ullamco veniam",
            "zh_CN": "ullamco veniam"
          },
          "parentId": "24cb078c-a119-4fa9-aad8-7f161a2b53f2",
          "sourceApp": null,
          "url": "laborum aute minim mollit laboris"
        }
      ],
      "code": "wyfMenu1",
      "createdTime": "2019-05-14 08:38:31.0",
      "displayOrder": 1,
      "icon": "icon-instance1",
      "id": "24cb078c-a119-4fa9-aad8-7f161a2b53f2",
      "jumpLocation": null,
      "name": "wyfMenu1",
      "nameJson": {
        "default": "wyfMenu1",
        "en_US": "wyfMenu1",
        "es_ES": "wyfMenu1",
        "ja_JP": "wyfMenu1",
        "zh_CN": "wyfMenu1"
      },
      "parentId": "",
      "sourceApp": null,
      "url": "/xxxxx/"
    }
  ],
  "name": "wind",
  "nameJson": {
    "default": "wind",
    "en_US": "wind",
    "es_ES": "wind",
    "ja_JP": "wind",
    "zh_CN": "wind"
  },
  "order": 0,
  "permissions": [
    {
      "additionType": null,
      "children": null,
      "code": "adipisicing",
      "createdTime": "2019-05-14 08:38:31.0",
      "displayOrder": 1,
      "icon": null,
      "id": "cillu",
      "jumpLocation": null,
      "name": "magna",
      "nameJson": {
        "default": "magna",
        "en_US": "magna",
        "es_ES": "magna",
        "ja_JP": "magna",
        "zh_CN": "magna"
      },
      "parentId": "",
      "sourceApp": null,
      "url": ""
    }
  ],
  "sourceApp": null,
  "status": true,
  "structures": null,
  "type": null,
  "url": null
}

3.getAppAssets

Return the asset tree of the current app

Call example

appPortalSDK.getAppAssets(); // Declude Associate Resource
appPortalSDK.getAppAssets(true); // Include Associate Resource
appPortalSDK.getAppAssets(false, ['all']); // Specify the resource type to return. The default value is ['auth_unit', 'logic_unit'], which can be configured by ou

Return example

{
  "associatedResources": [], // Associate Resource
  "children": [
    {
      "associatedResources": [], // Associate Resource
      "children": [
        {
          "associatedResources": [], // Associate Resource
          "children": [],
          "displayOrder": 0,
          "id": "a112233",
          "name": "node-1-1",
          "nameJson": {
            "default": "node-1-1",
            "en_US": "node-1-1",
            "es_ES": "node-1-1",
            "ja_JP": "node-1-1",
            "zh_CN": "node-1-1"
          },
          "parentId": "",
          "tag": null,
          "tags": []
        }
      ],
      "displayOrder": 0,
      "id": "a1122",
      "name": "tree-node-1",
      "nameJson": {
        "default": "tree-node-1",
        "en_US": "tree-node-1",
        "es_ES": "tree-node-1",
        "ja_JP": "tree-node-1",
        "zh_CN": "tree-node-1"
      },
      "parentId": "",
      "tag": "auth-unit",
      "tags": []
    }
  ],
  "displayOrder": 0,
  "id": "a11",
  "name": "asset-tree",
  "nameJson": {
    "default": "asset-tree",
    "en_US": "asset-tree",
    "es_ES": "asset-tree",
    "ja_JP": "asset-tree",
    "zh_CN": "asset-tree"
  },
  "parentId": "",
  "tag": null,
  "tags": [
    {
      "id": "xnka",
      "key": "name",
      "structureId": "aefas",
      "value": "auiqknd"
    }
  ]
}

4.getLocale

Acquire the current language information

Call example

appPortalSDK.getLocale();
‘en-US’ // 'zh-CN'

5.switchPage

Switch app pages

Call example

appPortalSDK.switchPage({
    appId: xxx,
    appCode: xxxx, //When a developer registers an app, he/she needs to enter either the appId or the appCode. appCode takes precedence over appId.
    menuCode: xxx,
    openOnNewTab: false, //Whether to open the page on a new tab
    state: xxx, // To be added to the URL query when rendering iframe
    addToVisitRecord: false, // Whether to add to recent visited records
    viewMode: 2 // This mode hides the menu and the top navigation bar. It is suitable for display on big screens.
})

Return example

true

6.setNotificationUrl

Set the notification URL

Call example

appPortalSDK.setNotificationUrl(’https://xxx.xxx/ss.html‘)

Return example

true

7.setHelpUrl

Set the Help URL

Call example

appPortalSDK.setHelpUrl('https://xxx.xxx/ss.html');

Return example

true

8.logout

Call example

appPortalSDK.logout();

9. Set the view mode

setViewMode()

Call example

appPortalSDK.setViewMode(0); // The default mode. This mode displays the menu and the top navigation bar.
appPortalSDK.setViewMode(1); // This mode hides the menu, cannot be clicked to display menu.
appPortalSDK.setViewMode(2); // This mode hides the menu and the top navigation bar. It is suitable for display on big screens.
appPortalSDK.setViewMode(3); // This mode hides the menu, can be clicked to display menu.
appPortalSDK.setViewMode(4); // Hide top navigation bar.

10. Show/hide the menu (retaining buttons that users can click)

Call example

appPortalSDK.toggleMenu(boolean); // true / false

11. Open external links

openLink(link)

12.get Available Locales

getAvailableLocales()

13. get current theme

getTheme()

14.getStructureByApp

Return the visible organization structure list of the current user by app

Call example

appPortalSDK.getStructureByApp();

Return example

[
  {
    "id": "a1232-123123123",
    "parentId": "",
    "name": "asset-1",
    "displayOrder": 0,
    "description": "ajkxnamedyh"
    "tags": {
      "key1": "value1"
    }
  }
]

15.getStructureByDetail

Return the asset details for the visible organization structure. Can be used with getStructureByApp to switch asset trees.

Call example

appPortalSDK.getStructureByDetail(structureRootId); // Declude Associate Resource
appPortalSDK.getStructureByDetail(structureRootId, true); // Include Associate Resource

Return example

Same as 3.getAppAssets

16.setBeforeLeave

Set the information of the second confirmation modal before leaving the page

Call example

appPortalSDK.setBeforeLeave(true, 'xxxxxx'); // Before leaving the page, need show a modal to confirm whether to leave, and the custom prompt message is "xxxxxx"
appPortalSDK.setBeforeLeave(false); // Not show the confirmation modal before leaving the page(default state)

17.useDrawer

Raise App Portal Drawer

Call example

appPortalSDK.useDrawer(urlData, componentData);
urlData = {
  url: 'xxxx', // The URL of the page opened inside the drawer
  openNewUrl: 'xxxxxxxxxx' // The URL of the page opened in the new page of the browser when the newOpen button is clicked
}
componentData = {
  placement: 'right', // 'bottom'/'right', the default is bottom
  title: 'title',
  subTitle: 'subTitle',
  width: '60%', // The setting is valid when placement='right', the default is '70%'
  height: '60%', // The setting is valid when placement='bottom', the default is '80%'
  showNewOpen: false, // Whether to display the newOpen button, the default is true
  theme: 'WHITE', // 'DARK'/'WHITE', the default is the current theme color of the App Portal
  maskClosable: 'true', // Whether to close the Drawer when clicking on the mask, the default is false
  destroyOnClose: 'false' // Whether to destroy the inner child elements of the drawer when it is closed, the default is true
}

Close App Portal Drawer

Call example

appPortalSDK.useDrawer();

18.useModal

Raise App Portal Modal

Call example

appPortalSDK.useModal(urlData, componentData, type = 1);
urlData = {
  url: 'xxxx', // The URL of the page opened inside the modal
}
componentData = {
  title: 'title',
  size: 'large', // 'small'/'medium'/'large', used to set the modal width, the default is medium
  height: 340, // The content height of the modal. After setting, the height range of the modal is 200px-600px. If over or under the height range of the modal, it will be displayed according to the extreme value
  theme: 'WHITE', // 'DARK'/'WHITE', the default is the current theme color of the App Portal
  maskClosable: 'true', // Whether to close the Modal when clicking on the mask, the default is false
  destroyOnClose: 'false' // Whether to destroy the inner child elements of the Modal when it is closed, the default is true
}
type = 1 / 2 // 1 represents a normal Modal, 2 represents a double confirm Modal

Close App Portal Modal

Call example

appPortalSDK.useModal();

19.showMessage

Display the prompt message of the interface call

Call example

appPortalSDK.showMessage(type = 'success', 'message'); // type = 'success'/'failed'/'warning'

20.setConfig

Enable lite mode

Call example

appPortalSDK.setConfig({
  appId: 'abcd', // Required
  liteMode: true, // Required
  token: 'efgh' // Optional, if not passed, the value will be taken from localStorage, and the key value will be consistent with the original sdk
});

21.getVisitRecords

Get the latest visit record

Call example

appPortalSDK.getVisitRecords();

Return example

[
  {
    "appId": "abcd"
    "menuCode": "menu21"
    "menuName": "menu21"
    "url": "defg"
  }
]

22.useWindow

Raise App Portal floating window

Call example

appPortalSDK.useWindow(winConfig);
winConfig = {
  code: 'xxxx', // Floating window component identifier code, required
  url: 'xxxx', // The URL of the page opened inside the floating window
  width: 480,
  height: 320,
  top: 50,
  right: 20,
  bottom: 50, // When configuring together with top, take the top value
  left: 20, // When configuring together with right, take the left value
  autoDestroy: false, // Automatically destroy floating windows when a page jumps, default value is true
  mask: true, // Enable mask layer, default value false
  visible: true, // Display floating window component, default false
  undisturbed: true, // Enable undisturbed prompt, default value true
  undisturbedAfterTimes: 2 // The number of times required to enable undisturbed mode, with a default value of 3
}

Close App Portal floating window

Call example

appPortalSDK.useWindow({code: 'xxxx'});

Get App Portal floating window data

Call example

appPortalSDK.getWindowData({code: 'xxx', incrementalUpdate: true}); // Incremental data
appPortalSDK.getWindowData({code: 'xxx'}); // All data

23.setLocale

Set language

Call example

appPortalSDK.setLocale('en-US');

Version Dependency

SDK version | app portal version ---------|---------- 0.1.12 | >=2.4.6-r-2 0.1.11 | >=2.4.6-r-1 0.1.10 | >=2.4.9 0.1.7 | >=2.4.8 0.1.6 | >=2.4.7 0.1.1 | >=2.4.4 0.0.16 | >=2.3.14 0.0.15 | >=2.3.10

Release Notes:

v0.1.12

  1. Add useWindow function and getWindowData function.
  2. Add a new view mode with a viewMode value of 4.
  3. Add setLocale function.

v0.1.11

  1. The switchPage method adds a viewMode parameter to support specifying the view mode when switching pages.
  2. Add a new view mode with a viewMode value of 3.

v0.1.10

  1. The getAppAssets method adds parameters to specify the resource type returned. By default, the default value is ['auth_unit', 'logic_unit'], which can be configured according to ou. Passing ['all'] means that all types are required.

v0.1.9

  1. Update readme。

v0.1.8

  1. Fix cross-domain error.

v0.1.7

  1. The getUserInfo method of the lite mode adds mailbox RSA decryption.
  2. Modify the getAppAssets and getStructureByDetail method call examples.
  3. Add the getVisitRecords method to get the latest visit record under the new navigation.

v0.1.6

  1. The getAppAssets and getStructureByDetail methods add parameters to request associated resources, and the default value is false to not request associated resources.

v0.1.5

  1. Fix the bug of token loss in lite mode.

v0.1.4

  1. Fix the bug that the getAppAssets method of the lite mode fails to get the data when the promise method error is called repeatedly.
  2. Update the readme and add an example of enabling lite mode.

v0.1.3

  1. Fix the failure of getStructureByDetail, setBeforeLeave, setHelpUrl, setNotificationUrl, setPageTitle, setViewMode, showMessage, toggleMenu, useDrawer, useModal and switchPage methods caused by changes in the internal parameter passing method of v0.1.1.
  2. The lite mode is added. After enabling it, the sdk can directly request the interface to obtain the corresponding data under the same domain as the App Portal. The lite version supports getAppAssets, getAppInfo, getAvailableLocales, getLocale, getStructureByApp, getStructureByDetail, getTheme, getUserInfo, and openLink.

v0.1.2

  1. Update the examples returned by the getUserInfo, getAppInfo and getAppAssets methods.

v0.1.1

  1. Add an addToVisitRecord parameter for switchPage function to determine whether the switch page needs to be added to the visited records
  2. Optimize the communication method, directly obtain the data mounted on the window when the application and the app portal are not cross-domain

v0.0.17

  1. Fixed the bug that the data of the desired app portal could not be obtained when there were multiple app portals

V0.0.16

  1. add useDrawer function and useModal function
  2. add showMessage function

V0.0.15

  1. add getStructureByApp function and getStructureByDetail function
  2. add setBeforeLeave function

V0.0.14

  1. add compatibility handling
  2. This version is recommended to be used with the App Portal of version GA2.2.0

V0.0.13

  1. add getTheme function

v0.0.11

  1. add getAvailableLocales function
  2. remove 404 check

v0.0.5

  1. Added the option to open a page on a new tab for switchPage.
  2. Added the openLink option.

V0.0.4

  1. Added support for switching pages by using appCode.

V0.0.3

  1. Added toggleMenu API.

v0.0.2

  1. Obfuscated the compression code.
  2. Added verification to check if an application is running in the app portal. If it is not running, SDK functions will reject the request.
  3. Tweaked the code structure.

v0.0.

  1. Provided an SDK Module based on ES5.
  2. Added API for big-screen mode and full-screen mode.
  3. Modified the menu URL configuration rules to enable relative paths.
  4. Added appId, menuCode, categoryId, and locale to content queries for rendering.
  5. Enhanced load and call speeds.
  6. Modified the README content.