开发流程
应用创建
- 在“应用管理平台-集成管理“页面,完成应用创建。

申请埋点权限
若应用需要使用埋点能力,则需申请埋点能力权限。埋点能力清单详见:埋点能力
- 选择提供埋点能力的应用,找到需要授权的埋点能力完成授权;


- 若”是否可用“状态为”否“,说明当前环境未获得该能力权益,可联系PM申请开通

创建[web组件]
- 在”应用详情-应用能力“页面启用[web组件],点击”能力配置“进入组件管理页:

- 可查看和管理web组件。点击”新增组件“可创建新的[web组件]


- web组件创建完成,点击”管理“进入组件详情,编辑组件信息或上传本地开发的组件包执行组件版本发布。


本地开发web组件
1.下载开发模板
2.本地开发组件
1. 将上方提供的插件模板zip包解压到本地并打开
文件结构如下 
2. 在入口文件会引入sdkctr(此处无需额外操作)
HTML
// src/web/tempalte.html
// 入口文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<title>Document</title>
<script>
window.ECIS_PUBLIC_XORIGIN_PATH = 'https://bgpt.qhzwfw.gov.cn'
</script>
</head>
<body>
<div id="app"></div>
</body>
</html>_📌template.html中适配了多路径和加密环境,引入了%ECIS_SDKCTR_SCRIPT%占位符,服务端会把该占位符替换为sdkctr.js引入,参考文档https://p.wpseco.cn/wiki/doc/65c19b8bdb9376f5d2fa9611_
3. 进入.env文件进行本地配置
此处的app.id和name请参考**上方埋点能力介绍**填写需要申请的埋点能力对应的应用id和应用名称,ECIS_TYPE填web即可,组件id可以不填。
shell
ECIS_APPID = '应用id'
ECIS_APPNAME = '应用端名称'
ECIS_TYPE = 'web'
ECIS_COMPONENT_ID = ''4.本地开发组件
在src下的index.tsx中根据需求编写相关代码,以下面的代码为例,在脚本中写入了注入了一个插件,并打印了一个油猴加载1111,并在页面触发了ca包中注册的点位能力的回调事件。
javascript
import sdk from "../../sdk";
export const { EcisNode, register, inject, createNode } = ecissdk;
class TestBtn extends EcisNode {
}
class LgqPluginBtn extends EcisNode {
static key = 'Test.Button'
get testBtn() {
return createNode(TestBtn, {
key: 'Kdrive.LgqTest.TestBtn',
})
}
onClick(listener: any) {
this.on('Click', listener)
}
}
inject('test', LgqPluginBtn)
console.error('油猴加载1111')
const test = async () => {
// 初始化sdk
const sdk = await ecissdk.init({ reactDOM: ReactDOM });
// 此处需使用await等待VNode注入成功,才可以拿到节点
// 分享页面-隐藏
sdk.commonComponents.shareModal.onMounted(() => {
console.error('油猴加载2222')
sdk.commonComponents.shareModal.hide();
});
}
test()3.完成组件打包
1. 运行npm run build将上一步开发完成的代码打包,打包之后会生成相关的dist文件夹

2. 本地构建ca包
在dist文件夹下会生成一个pack文件夹和config.json,根据下面的meta.json模板创建一个meta.json文件到本地文件夹下,将config.json的中对应的entrys中的资源内容复制到meta.json模板文件中的entrys列表,然后根据需求修改meta.json中的版本号和hooks。

json
// meta.json
{
"version": "3.0.0", // ca包的版本
"source": "file://pack", // 无需修改
"configuration": {
"type": "web", // 此处不需要修改,默认为web
"hooks": ["Kdrive.Aside.Menu"], // 对应应用管理平台的下的hook_id
"filters": [],
"modules": [],
"entrys": ["index.html", "plugin.ffbe7ed.js", "web.e403a67.js"]
}
}查看hooks的id步骤如下

3.将刚才生成的pack文件夹和meta.json一起压缩为ca包。压缩后手动把后缀改为ca即可。
json
- meta.json
- pack
- index.html
- plugin.ffbe7ed.js
- web.e403a67.js上传并发布web组件
- 在组件详情页面,点击”上传“,选择本地已打包的.ca组件包,完成上传:



- 组件包上传后,可执行版本发布,发布后的版本为生效版本


