customer-chat-sdk 1.0.74 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/IconManager.d.ts +2 -1
- package/dist/core/IconManager.d.ts.map +1 -1
- package/dist/core/IframeManager.d.ts +2 -0
- package/dist/core/IframeManager.d.ts.map +1 -1
- package/dist/core/ScreenshotManager.d.ts.map +1 -1
- package/dist/customer-sdk.cjs.js +198 -48
- package/dist/customer-sdk.esm.js +198 -49
- package/dist/customer-sdk.min.js +2 -2
- package/dist/index.d.ts +18 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconManager.d.ts","sourceRoot":"","sources":["../../src/core/IconManager.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,YAAY;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,YAAY,CAA4B;
|
|
1
|
+
{"version":3,"file":"IconManager.d.ts","sourceRoot":"","sources":["../../src/core/IconManager.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,YAAY;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,cAAc,CAAsD;IAC5E,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,KAAK,CAAiB;gBAElB,QAAQ,CAAC,EAAE,YAAY,EAAE,KAAK,GAAE,OAAe;IAK3D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+G3B;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAiC9B;;OAEG;IACH,IAAI,IAAI,IAAI;IAgBZ;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAIhC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAwB7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAI1B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAInC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IA8BpD;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAUzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqEvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA+DtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,WAAW;CAmDpB"}
|
|
@@ -8,6 +8,7 @@ interface IframeOptions {
|
|
|
8
8
|
allowClose?: boolean;
|
|
9
9
|
onMessage?: (messageType: string, data: any) => void;
|
|
10
10
|
onClose?: () => void;
|
|
11
|
+
debug?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export declare class IframeManager {
|
|
13
14
|
private config;
|
|
@@ -16,6 +17,7 @@ export declare class IframeManager {
|
|
|
16
17
|
private containerElement;
|
|
17
18
|
private isOpen;
|
|
18
19
|
private isCreated;
|
|
20
|
+
private debug;
|
|
19
21
|
constructor(config?: IframeOptions);
|
|
20
22
|
/**
|
|
21
23
|
* 初始化iframe(隐藏状态)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../src/core/IframeManager.ts"],"names":[],"mappings":"AACA,UAAU,aAAa;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAA;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,GAAE,aAAkB;IActC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;OAEG;IACH,IAAI,IAAI,IAAI;IA2DZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAqCZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;IAef;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA8BrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAyHpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8D1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;OAEG;IACH,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenshotManager.d.ts","sourceRoot":"","sources":["../../src/core/ScreenshotManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ScreenshotManager.d.ts","sourceRoot":"","sources":["../../src/core/ScreenshotManager.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,GAAG,aAAa,CAAA;IACxD,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;IACvC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACjB;AA4BD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAyH;IACxI,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAAQ;IAGzB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,oBAAoB,CAAqC;IAGjE,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,eAAe,CAA8B;IAGrD,OAAO,CAAC,iBAAiB,CAAY;IAGrC,OAAO,CAAC,sBAAsB,CAAQ;IAGtC,OAAO,CAAC,eAAe,CAAqE;IAC5F,OAAO,CAAC,iBAAiB,CAAQ;IAGjC,OAAO,CAAC,cAAc,CAA8D;IAGpF,OAAO,CAAC,eAAe,CAAsB;IAG7C,OAAO,CAAC,eAAe,CAA8B;IAGrD,OAAO,CAAC,sBAAsB,CAAO;IAGrC,OAAO,CAAC,cAAc,CAA4B;IAGlD,OAAO,CAAC,eAAe,CAA4D;IAInF,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,oBAAoB,CAAyB;IAGrD,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,2BAA2B,CAAI;IAGvC,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,sBAAsB,CAAwD;gBAE1E,aAAa,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAE,iBAAsB,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IA2DlH;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAmBnD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6F3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,eAAe,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IAmK9C;;OAEG;IACH,cAAc,IAAI,IAAI;IAqBtB;;OAEG;IACG,WAAW,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D;;OAEG;YACW,cAAc;IAoP5B;;;;;;OAMG;YACW,yBAAyB;IA+KvC;;;;;;;;;;;;;;;;OAgBG;YACW,6BAA6B;IA0Y3C;;;;;;;;;;;;;;;;;OAiBG;YACW,kCAAkC;IAyYhD;;OAEG;YACW,sBAAsB;IA0BpC;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;OAGG;YACW,qBAAqB;IAInC;;;OAGG;YACW,mBAAmB;IAIjC;;;OAGG;YACW,yBAAyB;IAIvC;;;OAGG;YACW,oBAAoB;IAIlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;YACW,uBAAuB;IA2ErC;;OAEG;YACW,UAAU;IAmDxB;;OAEG;YACW,yBAAyB;IAiFvC;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;YACW,mBAAmB;IA8BjC;;;OAGG;YACW,qBAAqB;IAqCnC;;OAEG;YACW,YAAY;IAa1B;;;OAGG;YACW,sBAAsB;IAoEpC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAoWpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;YACW,2BAA2B;IAoHzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAoFxC;;;;;OAKG;IACH,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IACzD,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACpD,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI;IAClE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACvE,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAwD1E;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAO9B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI;IA2D3D;;OAEG;IACH,OAAO,IAAI,IAAI;IA2Df;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,QAAQ;;;;;;;;;CAWT"}
|
package/dist/customer-sdk.cjs.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
// 直接使用base64字符串,避免打包后路径问题
|
|
6
6
|
const iconImage = 'data:image/png;base64,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';
|
|
7
7
|
class IconManager {
|
|
8
|
-
constructor(position) {
|
|
8
|
+
constructor(position, debug = false) {
|
|
9
9
|
this.iconElement = null;
|
|
10
10
|
this.badgeElement = null;
|
|
11
11
|
this.onClickCallback = null;
|
|
@@ -18,7 +18,9 @@ class IconManager {
|
|
|
18
18
|
this.dragMoveHandler = null;
|
|
19
19
|
this.dragEndHandler = null;
|
|
20
20
|
this.iconPosition = null; // 图标位置配置
|
|
21
|
+
this.debug = false; // debug 模式标志
|
|
21
22
|
this.iconPosition = position || null;
|
|
23
|
+
this.debug = debug;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* 显示悬浮图标
|
|
@@ -86,7 +88,9 @@ class IconManager {
|
|
|
86
88
|
iconImg.alt = 'Customer Service';
|
|
87
89
|
// 添加图片加载成功处理
|
|
88
90
|
iconImg.onload = () => {
|
|
89
|
-
|
|
91
|
+
if (this.debug) {
|
|
92
|
+
console.log('Icon image loaded successfully');
|
|
93
|
+
}
|
|
90
94
|
if (this.iconElement) {
|
|
91
95
|
// 确保图片可见
|
|
92
96
|
iconImg.style.opacity = '1';
|
|
@@ -95,6 +99,7 @@ class IconManager {
|
|
|
95
99
|
};
|
|
96
100
|
// 添加图片加载错误处理
|
|
97
101
|
iconImg.onerror = (e) => {
|
|
102
|
+
// 错误始终输出
|
|
98
103
|
console.error('Failed to load icon image', e);
|
|
99
104
|
// 只记录错误,不使用默认样式,必须使用外部提供的图片
|
|
100
105
|
};
|
|
@@ -116,7 +121,9 @@ class IconManager {
|
|
|
116
121
|
this.setupDragEvents();
|
|
117
122
|
// 添加到页面
|
|
118
123
|
document.body.appendChild(this.iconElement);
|
|
119
|
-
|
|
124
|
+
if (this.debug) {
|
|
125
|
+
console.log('CustomerSDK icon displayed');
|
|
126
|
+
}
|
|
120
127
|
}
|
|
121
128
|
/**
|
|
122
129
|
* 强制清理所有拖动事件监听器
|
|
@@ -129,7 +136,9 @@ class IconManager {
|
|
|
129
136
|
document.removeEventListener('touchmove', this.dragMoveHandler);
|
|
130
137
|
}
|
|
131
138
|
catch (e) {
|
|
132
|
-
|
|
139
|
+
if (this.debug) {
|
|
140
|
+
console.warn('Error removing drag move listeners:', e);
|
|
141
|
+
}
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
144
|
if (this.dragEndHandler) {
|
|
@@ -138,7 +147,9 @@ class IconManager {
|
|
|
138
147
|
document.removeEventListener('touchend', this.dragEndHandler);
|
|
139
148
|
}
|
|
140
149
|
catch (e) {
|
|
141
|
-
|
|
150
|
+
if (this.debug) {
|
|
151
|
+
console.warn('Error removing drag end listeners:', e);
|
|
152
|
+
}
|
|
142
153
|
}
|
|
143
154
|
}
|
|
144
155
|
// 重置拖动状态
|
|
@@ -161,7 +172,9 @@ class IconManager {
|
|
|
161
172
|
this.onClickCallback = null;
|
|
162
173
|
this.dragMoveHandler = null;
|
|
163
174
|
this.dragEndHandler = null;
|
|
164
|
-
|
|
175
|
+
if (this.debug) {
|
|
176
|
+
console.log('CustomerSDK icon hidden');
|
|
177
|
+
}
|
|
165
178
|
}
|
|
166
179
|
}
|
|
167
180
|
/**
|
|
@@ -218,7 +231,9 @@ class IconManager {
|
|
|
218
231
|
*/
|
|
219
232
|
showNotification(options) {
|
|
220
233
|
if (!this.iconElement) {
|
|
221
|
-
|
|
234
|
+
if (this.debug) {
|
|
235
|
+
console.warn('Icon not displayed, cannot show notification');
|
|
236
|
+
}
|
|
222
237
|
return;
|
|
223
238
|
}
|
|
224
239
|
const { showBadge = true, badgeCount = 0, badgeText = '', pulse = false } = options;
|
|
@@ -230,7 +245,9 @@ class IconManager {
|
|
|
230
245
|
if (this.notificationCallback) {
|
|
231
246
|
this.notificationCallback({ badgeCount, badgeText, pulse });
|
|
232
247
|
}
|
|
233
|
-
|
|
248
|
+
if (this.debug) {
|
|
249
|
+
console.log('Notification shown:', { badgeCount, badgeText });
|
|
250
|
+
}
|
|
234
251
|
}
|
|
235
252
|
/**
|
|
236
253
|
* 清除消息订阅
|
|
@@ -240,7 +257,9 @@ class IconManager {
|
|
|
240
257
|
this.badgeElement.remove();
|
|
241
258
|
this.badgeElement = null;
|
|
242
259
|
}
|
|
243
|
-
|
|
260
|
+
if (this.debug) {
|
|
261
|
+
console.log('Notification cleared');
|
|
262
|
+
}
|
|
244
263
|
}
|
|
245
264
|
/**
|
|
246
265
|
* 设置拖动和点击事件
|
|
@@ -464,6 +483,7 @@ class IframeManager {
|
|
|
464
483
|
this.containerElement = null; // 包装容器,包含iframe和关闭按钮
|
|
465
484
|
this.isOpen = false;
|
|
466
485
|
this.isCreated = false;
|
|
486
|
+
this.debug = false; // debug 模式标志
|
|
467
487
|
this.config = {
|
|
468
488
|
src: '',
|
|
469
489
|
mode: 'auto', // 默认自动检测设备类型
|
|
@@ -472,6 +492,7 @@ class IframeManager {
|
|
|
472
492
|
allowClose: true,
|
|
473
493
|
...config
|
|
474
494
|
};
|
|
495
|
+
this.debug = config.debug ?? false;
|
|
475
496
|
this.setupMessageListener();
|
|
476
497
|
}
|
|
477
498
|
/**
|
|
@@ -483,9 +504,12 @@ class IframeManager {
|
|
|
483
504
|
// 创建隐藏的iframe(预连接到SSE)
|
|
484
505
|
this.createIframe();
|
|
485
506
|
this.isCreated = true;
|
|
486
|
-
|
|
507
|
+
if (this.debug) {
|
|
508
|
+
console.log('CustomerSDK iframe initialized (hidden, SSE connected)');
|
|
509
|
+
}
|
|
487
510
|
}
|
|
488
511
|
catch (error) {
|
|
512
|
+
// 错误始终输出
|
|
489
513
|
console.error('Failed to initialize iframe:', error);
|
|
490
514
|
throw error;
|
|
491
515
|
}
|
|
@@ -536,9 +560,12 @@ class IframeManager {
|
|
|
536
560
|
}
|
|
537
561
|
}
|
|
538
562
|
this.isOpen = true;
|
|
539
|
-
|
|
563
|
+
if (this.debug) {
|
|
564
|
+
console.log('CustomerSDK iframe shown');
|
|
565
|
+
}
|
|
540
566
|
}
|
|
541
567
|
catch (error) {
|
|
568
|
+
// 错误始终输出
|
|
542
569
|
console.error('Failed to show iframe:', error);
|
|
543
570
|
}
|
|
544
571
|
}
|
|
@@ -574,7 +601,9 @@ class IframeManager {
|
|
|
574
601
|
this.preventBodyScroll(false);
|
|
575
602
|
}
|
|
576
603
|
this.isOpen = false;
|
|
577
|
-
|
|
604
|
+
if (this.debug) {
|
|
605
|
+
console.log('CustomerSDK iframe hidden (SSE still connected)');
|
|
606
|
+
}
|
|
578
607
|
// 触发关闭回调
|
|
579
608
|
if (this.config.onClose) {
|
|
580
609
|
this.config.onClose();
|
|
@@ -597,7 +626,9 @@ class IframeManager {
|
|
|
597
626
|
this.iframeElement = null;
|
|
598
627
|
}
|
|
599
628
|
this.isCreated = false;
|
|
600
|
-
|
|
629
|
+
if (this.debug) {
|
|
630
|
+
console.log('CustomerSDK container destroyed');
|
|
631
|
+
}
|
|
601
632
|
}
|
|
602
633
|
/**
|
|
603
634
|
* 检查是否已打开
|
|
@@ -748,7 +779,9 @@ class IframeManager {
|
|
|
748
779
|
});
|
|
749
780
|
// 添加到body(预连接SSE,但不显示)
|
|
750
781
|
document.body.appendChild(this.containerElement);
|
|
751
|
-
|
|
782
|
+
if (this.debug) {
|
|
783
|
+
console.log('CustomerSDK container created (hidden, ready for SSE)');
|
|
784
|
+
}
|
|
752
785
|
}
|
|
753
786
|
/**
|
|
754
787
|
* 向iframe注入移动端优化样式(隐藏滚动条)
|
|
@@ -800,12 +833,16 @@ class IframeManager {
|
|
|
800
833
|
`;
|
|
801
834
|
// 注入样式
|
|
802
835
|
iframeDoc.head?.appendChild(style);
|
|
803
|
-
|
|
836
|
+
if (this.debug) {
|
|
837
|
+
console.log('CustomerSDK mobile styles injected successfully');
|
|
838
|
+
}
|
|
804
839
|
}
|
|
805
840
|
}
|
|
806
841
|
catch (error) {
|
|
807
842
|
// 跨域限制时静默忽略
|
|
808
|
-
|
|
843
|
+
if (this.debug) {
|
|
844
|
+
console.log('Cannot inject styles due to cross-origin restrictions:', error);
|
|
845
|
+
}
|
|
809
846
|
}
|
|
810
847
|
}
|
|
811
848
|
/**
|
|
@@ -872,7 +909,9 @@ class IframeManager {
|
|
|
872
909
|
* 处理来自iframe的消息
|
|
873
910
|
*/
|
|
874
911
|
handleIframeMessage(data) {
|
|
875
|
-
|
|
912
|
+
if (this.debug) {
|
|
913
|
+
console.log('Message from iframe:', data);
|
|
914
|
+
}
|
|
876
915
|
// 判断data是字符串还是对象,兼容两种格式
|
|
877
916
|
let messageType;
|
|
878
917
|
if (typeof data === 'string') {
|
|
@@ -882,13 +921,17 @@ class IframeManager {
|
|
|
882
921
|
messageType = data.type;
|
|
883
922
|
}
|
|
884
923
|
else {
|
|
885
|
-
|
|
924
|
+
if (this.debug) {
|
|
925
|
+
console.log('Unknown message format:', data);
|
|
926
|
+
}
|
|
886
927
|
return;
|
|
887
928
|
}
|
|
888
929
|
// 根据消息类型处理不同的操作
|
|
889
930
|
switch (messageType) {
|
|
890
931
|
case 'iframe_ready':
|
|
891
|
-
|
|
932
|
+
if (this.debug) {
|
|
933
|
+
console.log('Iframe is ready');
|
|
934
|
+
}
|
|
892
935
|
break;
|
|
893
936
|
case 'close_iframe':
|
|
894
937
|
case 'close':
|
|
@@ -902,14 +945,18 @@ class IframeManager {
|
|
|
902
945
|
break;
|
|
903
946
|
case 'new-message':
|
|
904
947
|
// 新消息通知 - 触发回调让外层处理
|
|
905
|
-
|
|
948
|
+
if (this.debug) {
|
|
949
|
+
console.log('Received new message notification');
|
|
950
|
+
}
|
|
906
951
|
if (this.config.onMessage) {
|
|
907
952
|
this.config.onMessage(messageType, data);
|
|
908
953
|
}
|
|
909
954
|
break;
|
|
910
955
|
default:
|
|
911
956
|
// 可以在这里添加自定义消息处理
|
|
912
|
-
|
|
957
|
+
if (this.debug) {
|
|
958
|
+
console.log('Custom message:', data);
|
|
959
|
+
}
|
|
913
960
|
}
|
|
914
961
|
}
|
|
915
962
|
/**
|
|
@@ -15205,9 +15252,9 @@ class ScreenshotManager {
|
|
|
15205
15252
|
: (isMobile ? 0.5 : 0.6), // 用户未配置,使用默认值
|
|
15206
15253
|
useCORS: this.options.enableCORS,
|
|
15207
15254
|
allowTaint: !this.options.enableCORS, // 如果启用 CORS,不允许 taint
|
|
15208
|
-
logging: !this.options.silentMode,
|
|
15209
|
-
foreignObjectRendering: true,
|
|
15210
|
-
removeContainer: true, //
|
|
15255
|
+
logging: !this.options.silentMode, // 使用配置的静默模式
|
|
15256
|
+
// foreignObjectRendering: true, // ❌ 移除:可能导致跨域图片不显示
|
|
15257
|
+
// removeContainer: true, // ❌ 移除:移到后面,避免重复定义
|
|
15211
15258
|
// 不设置 width 和 height,让 html2canvas 自动计算
|
|
15212
15259
|
// width: finalWidth, // ❌ 移除,会导致宽度不正确
|
|
15213
15260
|
// height: finalHeight, // ❌ 移除,会导致高度不正确
|
|
@@ -15397,11 +15444,37 @@ class ScreenshotManager {
|
|
|
15397
15444
|
const cachedDataUrl = this.getCachedImage(originalSrc);
|
|
15398
15445
|
if (cachedDataUrl) {
|
|
15399
15446
|
img.src = cachedDataUrl;
|
|
15447
|
+
if (!this.options.silentMode) {
|
|
15448
|
+
console.log(`📸 使用缓存的图片: ${originalSrc.substring(0, 50)}...`);
|
|
15449
|
+
}
|
|
15400
15450
|
return;
|
|
15401
15451
|
}
|
|
15402
|
-
// 对于跨域图片,使用代理 URL
|
|
15403
|
-
//
|
|
15404
|
-
|
|
15452
|
+
// 对于跨域图片,使用代理 URL 替换
|
|
15453
|
+
// 构建代理 URL
|
|
15454
|
+
try {
|
|
15455
|
+
if (!this.options.proxyUrl) {
|
|
15456
|
+
if (!this.options.silentMode) {
|
|
15457
|
+
console.warn(`📸 ⚠️ 未配置代理 URL,跨域图片可能无法显示: ${originalSrc}`);
|
|
15458
|
+
}
|
|
15459
|
+
return;
|
|
15460
|
+
}
|
|
15461
|
+
const params = new URLSearchParams({
|
|
15462
|
+
url: originalSrc,
|
|
15463
|
+
});
|
|
15464
|
+
let baseUrl = this.options.proxyUrl.trim();
|
|
15465
|
+
// 移除末尾的 ? 或 &(如果有)
|
|
15466
|
+
baseUrl = baseUrl.replace(/[?&]$/, '');
|
|
15467
|
+
const proxyUrl = `${baseUrl}?${params.toString()}`;
|
|
15468
|
+
img.src = proxyUrl;
|
|
15469
|
+
if (!this.options.silentMode) {
|
|
15470
|
+
console.log(`📸 使用代理 URL 替换跨域图片: ${originalSrc.substring(0, 50)}... -> ${proxyUrl.substring(0, 50)}...`);
|
|
15471
|
+
}
|
|
15472
|
+
}
|
|
15473
|
+
catch (error) {
|
|
15474
|
+
if (!this.options.silentMode) {
|
|
15475
|
+
console.warn(`📸 ⚠️ 处理图片 URL 失败: ${originalSrc}`, error);
|
|
15476
|
+
}
|
|
15477
|
+
}
|
|
15405
15478
|
});
|
|
15406
15479
|
};
|
|
15407
15480
|
}
|
|
@@ -20585,27 +20658,47 @@ class CustomerServiceSDK {
|
|
|
20585
20658
|
this.screenshotManager = null;
|
|
20586
20659
|
this.config = null;
|
|
20587
20660
|
this.isInitialized = false;
|
|
20661
|
+
this.initResult = null; // 保存初始化结果
|
|
20662
|
+
this.debug = false; // debug 模式标志
|
|
20588
20663
|
}
|
|
20589
20664
|
/**
|
|
20590
20665
|
* 初始化 SDK
|
|
20591
20666
|
* @param config SDK配置
|
|
20592
20667
|
* @param options UI选项(可选)
|
|
20668
|
+
* @returns 返回初始化信息(包含设备ID等)
|
|
20593
20669
|
*/
|
|
20594
20670
|
async init(config, options) {
|
|
20595
20671
|
if (this.isInitialized) {
|
|
20596
|
-
|
|
20597
|
-
|
|
20672
|
+
if (this.debug) {
|
|
20673
|
+
console.warn('CustomerSDK already initialized');
|
|
20674
|
+
}
|
|
20675
|
+
// 如果已经初始化,返回之前保存的初始化信息
|
|
20676
|
+
if (this.initResult) {
|
|
20677
|
+
return this.initResult;
|
|
20678
|
+
}
|
|
20679
|
+
throw new Error('SDK already initialized but cannot retrieve initialization info');
|
|
20598
20680
|
}
|
|
20599
20681
|
this.config = config;
|
|
20682
|
+
this.debug = config.debug ?? false;
|
|
20600
20683
|
try {
|
|
20601
20684
|
// 获取设备指纹ID
|
|
20602
20685
|
const deviceId = await this.getDeviceId();
|
|
20603
|
-
|
|
20686
|
+
if (this.debug) {
|
|
20687
|
+
console.log('Device ID:', deviceId);
|
|
20688
|
+
}
|
|
20604
20689
|
// 构建iframe URL(带参数)
|
|
20605
20690
|
const iframeUrl = this.buildIframeUrl(config, deviceId);
|
|
20691
|
+
// 准备返回的初始化信息
|
|
20692
|
+
const initResult = {
|
|
20693
|
+
deviceId,
|
|
20694
|
+
iframeUrl,
|
|
20695
|
+
referrer: document.referrer,
|
|
20696
|
+
agent: config.agent,
|
|
20697
|
+
timestamp: Date.now()
|
|
20698
|
+
};
|
|
20606
20699
|
// 创建悬浮图标管理器(支持自定义位置)
|
|
20607
20700
|
const iconPosition = options?.iconPosition || undefined;
|
|
20608
|
-
this.iconManager = new IconManager(iconPosition);
|
|
20701
|
+
this.iconManager = new IconManager(iconPosition, this.debug);
|
|
20609
20702
|
await this.iconManager.show();
|
|
20610
20703
|
// 创建iframe管理器(自动检测设备类型)
|
|
20611
20704
|
this.iframeManager = new IframeManager({
|
|
@@ -20614,6 +20707,7 @@ class CustomerServiceSDK {
|
|
|
20614
20707
|
width: 400,
|
|
20615
20708
|
height: 600,
|
|
20616
20709
|
allowClose: true,
|
|
20710
|
+
debug: this.debug, // 传递 debug 标志
|
|
20617
20711
|
onMessage: (messageType, _data) => {
|
|
20618
20712
|
// 处理来自iframe的消息
|
|
20619
20713
|
if (messageType === 'new-message') {
|
|
@@ -20641,18 +20735,32 @@ class CustomerServiceSDK {
|
|
|
20641
20735
|
// 默认截图目标为 document.body,可以通过配置自定义
|
|
20642
20736
|
const targetElement = document.body;
|
|
20643
20737
|
// 传入发送消息到 iframe 的回调函数
|
|
20644
|
-
|
|
20738
|
+
// 将 debug 配置传递给截图管理器(通过 silentMode 的相反值)
|
|
20739
|
+
const screenshotOptions = {
|
|
20740
|
+
...config.screenshot,
|
|
20741
|
+
silentMode: !this.debug // debug=true 时 silentMode=false(显示日志),debug=false 时 silentMode=true(隐藏日志)
|
|
20742
|
+
};
|
|
20743
|
+
this.screenshotManager = new ScreenshotManager(targetElement, screenshotOptions, (data) => {
|
|
20645
20744
|
// 通过 IframeManager 发送消息到 iframe
|
|
20646
20745
|
this.iframeManager?.sendToIframe(data);
|
|
20647
20746
|
});
|
|
20648
20747
|
// 自动启用截图功能(用于测试,实际使用时需要通过 iframe 消息启用)
|
|
20649
20748
|
this.screenshotManager.enable(true);
|
|
20650
|
-
|
|
20749
|
+
if (this.debug) {
|
|
20750
|
+
console.log('CustomerSDK screenshot manager initialized and enabled');
|
|
20751
|
+
}
|
|
20651
20752
|
}
|
|
20652
20753
|
this.isInitialized = true;
|
|
20653
|
-
|
|
20754
|
+
// 保存初始化结果,以便后续获取
|
|
20755
|
+
this.initResult = initResult;
|
|
20756
|
+
if (this.debug) {
|
|
20757
|
+
console.log('CustomerSDK initialized successfully (iframe pre-connected to SSE)');
|
|
20758
|
+
}
|
|
20759
|
+
// 返回初始化信息
|
|
20760
|
+
return initResult;
|
|
20654
20761
|
}
|
|
20655
20762
|
catch (error) {
|
|
20763
|
+
// 错误始终输出
|
|
20656
20764
|
console.error('Failed to initialize CustomerSDK:', error);
|
|
20657
20765
|
throw error;
|
|
20658
20766
|
}
|
|
@@ -20721,7 +20829,9 @@ class CustomerServiceSDK {
|
|
|
20721
20829
|
*/
|
|
20722
20830
|
showNotification(badgeCount = 1, options = {}) {
|
|
20723
20831
|
if (!this.iconManager) {
|
|
20724
|
-
|
|
20832
|
+
if (this.debug) {
|
|
20833
|
+
console.warn('SDK not initialized');
|
|
20834
|
+
}
|
|
20725
20835
|
return;
|
|
20726
20836
|
}
|
|
20727
20837
|
this.iconManager.showNotification({
|
|
@@ -20753,7 +20863,9 @@ class CustomerServiceSDK {
|
|
|
20753
20863
|
*/
|
|
20754
20864
|
async captureScreenshot(force = false) {
|
|
20755
20865
|
if (!this.screenshotManager) {
|
|
20756
|
-
|
|
20866
|
+
if (this.debug) {
|
|
20867
|
+
console.warn('截图功能未启用');
|
|
20868
|
+
}
|
|
20757
20869
|
return false;
|
|
20758
20870
|
}
|
|
20759
20871
|
return await this.screenshotManager.captureOnce(force);
|
|
@@ -20763,11 +20875,15 @@ class CustomerServiceSDK {
|
|
|
20763
20875
|
*/
|
|
20764
20876
|
enableScreenshot(enabled) {
|
|
20765
20877
|
if (!this.screenshotManager) {
|
|
20766
|
-
|
|
20878
|
+
if (this.debug) {
|
|
20879
|
+
console.warn('截图管理器未初始化');
|
|
20880
|
+
}
|
|
20767
20881
|
return;
|
|
20768
20882
|
}
|
|
20769
20883
|
this.screenshotManager.enable(enabled);
|
|
20770
|
-
|
|
20884
|
+
if (this.debug) {
|
|
20885
|
+
console.log(`📸 截图功能已${enabled ? '启用' : '禁用'}`);
|
|
20886
|
+
}
|
|
20771
20887
|
}
|
|
20772
20888
|
/**
|
|
20773
20889
|
* 获取截图状态
|
|
@@ -20781,11 +20897,15 @@ class CustomerServiceSDK {
|
|
|
20781
20897
|
*/
|
|
20782
20898
|
updateScreenshotOptions(options) {
|
|
20783
20899
|
if (!this.screenshotManager) {
|
|
20784
|
-
|
|
20900
|
+
if (this.debug) {
|
|
20901
|
+
console.warn('截图管理器未初始化,无法更新配置');
|
|
20902
|
+
}
|
|
20785
20903
|
return;
|
|
20786
20904
|
}
|
|
20787
20905
|
this.screenshotManager.updateOptions(options);
|
|
20788
|
-
|
|
20906
|
+
if (this.debug) {
|
|
20907
|
+
console.log('📸 截图配置已更新:', options);
|
|
20908
|
+
}
|
|
20789
20909
|
}
|
|
20790
20910
|
/**
|
|
20791
20911
|
* 销毁 SDK
|
|
@@ -20798,27 +20918,47 @@ class CustomerServiceSDK {
|
|
|
20798
20918
|
this.iframeManager = null;
|
|
20799
20919
|
this.screenshotManager = null;
|
|
20800
20920
|
this.config = null;
|
|
20921
|
+
this.initResult = null;
|
|
20801
20922
|
this.isInitialized = false;
|
|
20802
|
-
|
|
20923
|
+
if (this.debug) {
|
|
20924
|
+
console.log('CustomerSDK destroyed');
|
|
20925
|
+
}
|
|
20926
|
+
}
|
|
20927
|
+
/**
|
|
20928
|
+
* 获取初始化信息(设备ID等)
|
|
20929
|
+
*/
|
|
20930
|
+
getInitResult() {
|
|
20931
|
+
return this.initResult;
|
|
20803
20932
|
}
|
|
20804
20933
|
/**
|
|
20805
20934
|
* 获取设备指纹ID
|
|
20806
20935
|
*/
|
|
20807
20936
|
async getDeviceId() {
|
|
20808
|
-
|
|
20937
|
+
if (this.debug) {
|
|
20938
|
+
console.log('🔍 Starting to get device fingerprint...');
|
|
20939
|
+
}
|
|
20809
20940
|
try {
|
|
20810
|
-
|
|
20941
|
+
if (this.debug) {
|
|
20942
|
+
console.log('📦 Loading FingerprintJS...');
|
|
20943
|
+
}
|
|
20811
20944
|
const fp = await index$1.load();
|
|
20812
|
-
|
|
20945
|
+
if (this.debug) {
|
|
20946
|
+
console.log('🎯 Getting device fingerprint...');
|
|
20947
|
+
}
|
|
20813
20948
|
const result = await fp.get();
|
|
20814
|
-
|
|
20815
|
-
|
|
20949
|
+
if (this.debug) {
|
|
20950
|
+
console.log('✅ FingerprintJS result:', result);
|
|
20951
|
+
console.log('🆔 Device ID obtained:', result.visitorId);
|
|
20952
|
+
}
|
|
20816
20953
|
return result.visitorId;
|
|
20817
20954
|
}
|
|
20818
20955
|
catch (error) {
|
|
20956
|
+
// 错误始终输出
|
|
20819
20957
|
console.warn('❌ Failed to get device fingerprint, using fallback:', error);
|
|
20820
20958
|
const fallbackId = 'device_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
|
|
20821
|
-
|
|
20959
|
+
if (this.debug) {
|
|
20960
|
+
console.log('🆔 Fallback Device ID:', fallbackId);
|
|
20961
|
+
}
|
|
20822
20962
|
return fallbackId;
|
|
20823
20963
|
}
|
|
20824
20964
|
}
|
|
@@ -20849,12 +20989,13 @@ let globalSDKInstance = null;
|
|
|
20849
20989
|
* 初始化 Customer SDK
|
|
20850
20990
|
* @param config SDK配置
|
|
20851
20991
|
* @param options UI选项(可选)
|
|
20992
|
+
* @returns 返回初始化信息(包含设备ID等)
|
|
20852
20993
|
*/
|
|
20853
20994
|
const init = async (config, options) => {
|
|
20854
20995
|
if (!globalSDKInstance) {
|
|
20855
20996
|
globalSDKInstance = new CustomerServiceSDK();
|
|
20856
20997
|
}
|
|
20857
|
-
await globalSDKInstance.init(config, options);
|
|
20998
|
+
return await globalSDKInstance.init(config, options);
|
|
20858
20999
|
};
|
|
20859
21000
|
/**
|
|
20860
21001
|
* 获取全局SDK实例
|
|
@@ -20917,6 +21058,13 @@ const getConnectionStatus = () => {
|
|
|
20917
21058
|
const sdk = getInstance();
|
|
20918
21059
|
return sdk.getConnectionStatus();
|
|
20919
21060
|
};
|
|
21061
|
+
/**
|
|
21062
|
+
* 获取初始化信息(设备ID等)
|
|
21063
|
+
*/
|
|
21064
|
+
const getInitResult = () => {
|
|
21065
|
+
const sdk = getInstance();
|
|
21066
|
+
return sdk.getInitResult();
|
|
21067
|
+
};
|
|
20920
21068
|
/**
|
|
20921
21069
|
* 消息通知API
|
|
20922
21070
|
*/
|
|
@@ -20960,6 +21108,7 @@ const updateScreenshotOptions = (options) => {
|
|
|
20960
21108
|
var index = {
|
|
20961
21109
|
init,
|
|
20962
21110
|
getInstance,
|
|
21111
|
+
getInitResult,
|
|
20963
21112
|
showIcon,
|
|
20964
21113
|
hideIcon,
|
|
20965
21114
|
setIconPosition,
|
|
@@ -20988,6 +21137,7 @@ exports.default = index;
|
|
|
20988
21137
|
exports.destroy = destroy;
|
|
20989
21138
|
exports.enableScreenshot = enableScreenshot;
|
|
20990
21139
|
exports.getConnectionStatus = getConnectionStatus;
|
|
21140
|
+
exports.getInitResult = getInitResult;
|
|
20991
21141
|
exports.getInstance = getInstance;
|
|
20992
21142
|
exports.getScreenshotState = getScreenshotState;
|
|
20993
21143
|
exports.hideIcon = hideIcon;
|