UNPKG

@datafinder/embed-sdk

Version:

Embed SDK for DataFinder

147 lines (113 loc) 8.8 kB
# @datafinder/embed-sdk 使用文档 ## 简介 UBAFinder)应用包含一些较为通用的功能(例如看板,报表,用户细查等),需要被外部页面嵌入,外部页面包括字节内部(例如 Finder)和外部(例如私有化用户)。因此 UBA 提供了该 SDK 用于 Finder 子模块的统一接入。 ## 安装 ### 通过 npm 包接入 ```bash # npm npm i -S @datafinder/embed-sdk # yarn yarn add @datafinder/embed-sdk # pnpm pnpm add @datafinder/embed-sdk ``` ## 快速开始 ### 示例:渲染用户分析应用 ```typescript import * as EmbedSDK from '@datafinder/embed-sdk'; EmbedSDK.render({ // 自定义渲染页面的容器元素,例如 targetNode: document.queryElementById('finder-app'), // finder 应用 id appId: 164154, // 页面 ID page: 'behavior-detail', // 不启动桥接的跨域请求 crossOrigin: false, // 其他自定义参数 basePath: '/fedev-embed-behavior-detail', from: 'tester', customRequestHeaders: { 'X-Tester-Source': 'tester', }, }); ``` ## API 参考 **render(options: EmbedRenderOptions)** **函数功能** 渲染增长分析集成页面 **函数声明** ```typescript function render(options: EmbedRenderOptions): void; ``` **参数说明** - 该函数的参数说明如下。 | **参数名称** | **参数类型** | **必填** | **说明** | | :-------------------- | :----------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | targetNode | HTMLElement || 渲染 Finder 应用的容器 | | appId | number | 是 | 嵌入的 Finder 应用 ID | | projectId | number || 嵌入的 Finder 项目 ID ,项目Id和应用ID(appId)必填一个 | |host | string | 否 | 嵌入的 Finder 页面 Host,如置空则默认为同域,并使用当前环境的 host- host 参数目前需要指定协议头或 '//'_例如需要接入 xxx.datarangers-onpremise.volces.com 提供的 Finder 页面,传入 host: "//xxx.datarangers-onpremise.volces.com"_ | | basePath | string || Finder 应用的路径。默认是 '/datafinder' | | crossOrigin | boolean | 否 | 嵌入页面是否跨域。默认会根据传入的 host 自动判断 | | dorToken | string || 如传入了 dorToken,则会通过 dorToken 作为鉴权方式渲染页面 | | from | string | 否 | 接入方来源。保留字段,SDK 预留 | | needsMinibaseRedirect | boolean || 是否需要 minibase 的重定向 | | proxyPath | string | 否 | 嵌入页面中 Finder 请求代理的接口地址,在 crossOrigin 为 true 时使用 | | page | EmbedPage || 嵌入的 Finder 模块页面 | | customRequestHeaders | Record<string, string> | 否 | 嵌入页面内请求的自定义 headers | | embedQueryParams | || filter_id: 传入筛选器参数;hideTitleAndOps;隐藏整个头部 hideBelongTo; 隐藏图表的所属人 hideTitle; 隐藏看板标题 hideOpActions; 隐藏操作区按钮 | | iframeOptions | HTMLIFrameElement | 否 | 渲染 iframe 节点时的自定义 attrs。默认为 { width: '100%', height: '100%', frameBorder: '0' } | | onSuccess | () => void || 嵌入页面渲染成功时的回调 | | onError | (reason: string) => void | 否 | 嵌入页面渲染失败时的回调 | | onFinish | (data: unknown) => void || 嵌入页面完成功能后的回调- 分群编辑页: 分群保存成功后触发 | **page 参数说明** 目前支持嵌入的页面列表: - dashboard - report - behavior-detail - user-cohort/edit-cohort/:type/:id | **页面** | **参数值** | **说明** | | :-------------------------------- | :------------------------ | :----------- | | dashboard | dashboard | 看板页面 | | report | report | 单独报表页面 | | behavior-detail | behavior-detail | | | user-cohort/edit-cohort/:type/:id | user-cohort/edit-cohort/4 | | **返回值** 无 **示例** - 渲染用户分析应用(同域) ```typescript import * as EmbedSDK from '@datafinder/embed-sdk'; EmbedSDK.render({ // 渲染页面的容器元素 targetNode: document.queryElementById('finder-app'), // finder 应用 id appId: 164154, // 页面 ID page: 'behavior-detail', // 不启动跨域请求 crossOrigin: false, // 其他自定义参数 from: 'tester', customRequestHeaders: { 'X-Tester-Source': 'tester', }, }); ``` - 外部用户嵌入 Finder 看板(跨域) ```typescript import * as EmbedSDK from '@datafinder/embed-sdk'; EmbedSDK.render({ // 渲染页面的容器元素 targetNode: document.queryElementById('finder-app'), appId: 214032, host: '//e168-6-120finder.datarangers-onpremise.volces.com', basePath: '/datafinder', page: 'dashboard', dashboardId: '7118932524570509838', crossOrigin: true, proxyPath: `/datafinder/openapi/v1/10000000/dashboard_requests`, filterId: 29, }); ```