From 582467bbac28855a0d0fd42f4bc90b1d42680596 Mon Sep 17 00:00:00 2001 From: devin-cwd Date: Tue, 19 Nov 2024 11:58:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=88=9D=E5=A7=8B=E5=8C=96/=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=9C=A8header?= =?UTF-8?q?=E4=B8=AD=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5env=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E5=BC=80=E5=8F=91=E3=80=81=E7=94=9F=E4=BA=A7=E7=AD=89?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/analytics/index.html | 8 +++++--- packages/analytics/src/open-analytics.ts | 19 +++++++++++++++++-- packages/analytics/src/types.ts | 4 ++++ packages/analytics/test/main.ts | 14 +++++++++++++- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/packages/analytics/index.html b/packages/analytics/index.html index 2ee13d0..8344053 100644 --- a/packages/analytics/index.html +++ b/packages/analytics/index.html @@ -15,14 +15,16 @@
+ + + + + open link
123
- - -
diff --git a/packages/analytics/src/open-analytics.ts b/packages/analytics/src/open-analytics.ts index 1cfeacb..4be2599 100644 --- a/packages/analytics/src/open-analytics.ts +++ b/packages/analytics/src/open-analytics.ts @@ -3,7 +3,7 @@ import { whenDocumentReady, isFunction, isPromise, uniqueId, isClient } from './ import { Constant } from './constant'; import { reportInnerEvent, isInnerEvent } from './events'; import packageJson from '../package.json'; -import { EventContent, EventData, EventHeader, OpenAnalyticsParams, ReportRequest, EventParams } from './types'; +import { EventContent, EventData, EventHeader, OpenAnalyticsParams, ReportRequest, EventParams, Environment } from './types'; class AnalyticsStoreKey { appPrefix: string; @@ -82,7 +82,9 @@ export class OpenAnalytics { save: false, }).value; - this.#header = {}; + this.#header = { + env: params.env ?? 'production', + }; this.enabled = false; } @@ -106,6 +108,7 @@ export class OpenAnalytics { }).value; return { + env: 'development', cId: client.id, aId: appId, oa_version: packageJson.version, @@ -207,6 +210,18 @@ export class OpenAnalytics { setHeader(header: Record) { Object.assign(this.#header, header); } + /** + * 设置运行环境 + */ + setEnvironment(env: Environment) { + // 如果环境切换,需将之前环境数据上报,避免旧环境数据记录到新环境 + if (this.#header.env !== env) { + this.#runRequestPlan(true); + } + Object.assign(this.#header, { + env: env, + }); + } /** * 控制是否发送数据上报 * @param enabled diff --git a/packages/analytics/src/types.ts b/packages/analytics/src/types.ts index ac1f744..9f188b8 100644 --- a/packages/analytics/src/types.ts +++ b/packages/analytics/src/types.ts @@ -10,7 +10,10 @@ export interface EventData { sId: string; // 会话id } +export type Environment = 'development' | 'production' | (string & {}); + export interface EventHeader { + env?: Environment; // 当前运行环境 cId?: string; // 客户端匿名标识,清除浏览器缓存销毁 aId?: string; // 应用id oa_version?: string; // OA版本 @@ -35,6 +38,7 @@ export interface ReportData { export type ReportRequest = (data: ReportData) => Promise | void; export interface OpenAnalyticsParams { + env?: Environment; // 当前环境 request: (data: ReportData) => Promise | void; // 上报数据的接口 appKey?: string; // 采集app的key,用于区分多app上报 immediate?: boolean; // 全局设置是否立即上报 diff --git a/packages/analytics/test/main.ts b/packages/analytics/test/main.ts index 876dd99..b9d70b6 100644 --- a/packages/analytics/test/main.ts +++ b/packages/analytics/test/main.ts @@ -4,11 +4,17 @@ import { getClientInfo } from '../src/plugins'; const btn1 = document.querySelector('#btn1'); 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 oa = new OpenAnalytics({ appKey: 'test', request: (data) => { - console.log('request to send content', data); + console.log( + 'request to send content', + data.header.env, + data.body.map((item) => item.event) + ); // return fetch('report', { // method: 'POST', // body: JSON.stringify(data), @@ -65,3 +71,9 @@ btnOpen?.addEventListener('click', () => { btnClose?.addEventListener('click', () => { enabledOA(false); }); +btnEnvDev?.addEventListener('click', () => { + oa.setEnvironment('development'); +}); +btnEnvProd?.addEventListener('click', () => { + oa.setEnvironment('prodution'); +}); -- Gitee From 05b557e128aa01aadfbf8901f453763de4b7456b Mon Sep 17 00:00:00 2001 From: devin-cwd Date: Tue, 19 Nov 2024 12:01:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/analytics/src/open-analytics.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/analytics/src/open-analytics.ts b/packages/analytics/src/open-analytics.ts index 4be2599..6a9ccf5 100644 --- a/packages/analytics/src/open-analytics.ts +++ b/packages/analytics/src/open-analytics.ts @@ -108,7 +108,6 @@ export class OpenAnalytics { }).value; return { - env: 'development', cId: client.id, aId: appId, oa_version: packageJson.version, -- Gitee