diff --git a/packages/analytics/index.html b/packages/analytics/index.html index 834405306aa63fcb1b8c457b287437097ff73c84..01a7ab6840275e1f57557af322f5efb15304e1d9 100644 --- a/packages/analytics/index.html +++ b/packages/analytics/index.html @@ -20,6 +20,8 @@ + + open link
123
diff --git a/packages/analytics/src/open-analytics.ts b/packages/analytics/src/open-analytics.ts index 6a9ccf59fc917ee16f36aeb3a8b501e5584ddf5d..e168cb9973b9a1eefed26698120f2065c3fbbec9 100644 --- a/packages/analytics/src/open-analytics.ts +++ b/packages/analytics/src/open-analytics.ts @@ -108,6 +108,7 @@ export class OpenAnalytics { }).value; return { + uId: '', cId: client.id, aId: appId, oa_version: packageJson.version, @@ -221,6 +222,14 @@ export class OpenAnalytics { env: env, }); } + /** + * 设置user id + */ + setUserId(userId: string) { + Object.assign(this.#header, { + uId: userId, + }); + } /** * 控制是否发送数据上报 * @param enabled diff --git a/packages/analytics/src/types.ts b/packages/analytics/src/types.ts index 9f188b80ff1da854afc5ff932d26c355dd3df057..3418f643e29759579010b1f70eff587cc9d4d210 100644 --- a/packages/analytics/src/types.ts +++ b/packages/analytics/src/types.ts @@ -14,6 +14,7 @@ export type Environment = 'development' | 'production' | (string & {}); export interface EventHeader { env?: Environment; // 当前运行环境 + uId?: string; // 用户id cId?: string; // 客户端匿名标识,清除浏览器缓存销毁 aId?: string; // 应用id oa_version?: string; // OA版本 diff --git a/packages/analytics/test/main.ts b/packages/analytics/test/main.ts index b9d70b6ca4e6af4de44b047fa0d75a70104b42b3..2ccd9bcbad58e590b458ea8a06838b3bfec779ae 100644 --- a/packages/analytics/test/main.ts +++ b/packages/analytics/test/main.ts @@ -6,13 +6,15 @@ const btnOpen = document.querySelector('#btn-open'); const btnClose = document.querySelector('#btn-close'); const btnEnvDev = document.querySelector('#btn-env-dev'); const btnEnvProd = document.querySelector('#btn-env-prod'); +const btnLogin = document.querySelector('#btn-login'); +const btnLogout = document.querySelector('#btn-logout'); const oa = new OpenAnalytics({ appKey: 'test', request: (data) => { console.log( 'request to send content', - data.header.env, + data.header, data.body.map((item) => item.event) ); // return fetch('report', { @@ -77,3 +79,10 @@ btnEnvDev?.addEventListener('click', () => { btnEnvProd?.addEventListener('click', () => { oa.setEnvironment('prodution'); }); + +btnLogin?.addEventListener('click', () => { + oa.setUserId('12332112312312'); +}); +btnLogout?.addEventListener('click', () => { + oa.setUserId(''); +});