@neysf/qiyu-web-sdk 1.1.0 → 1.1.2

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/CHANGELOG.md CHANGED
@@ -6,5 +6,9 @@
6
6
  ### Features
7
7
  * 支持海外版本
8
8
 
9
+ ## [1.1.1] (2023-02-09)
10
+ ### Features
11
+ * 海外版参数修改
12
+
9
13
 
10
14
 
package/README.md CHANGED
@@ -24,6 +24,7 @@ import YSF from '@neysf/qiyu-web-sdk';
24
24
  /**
25
25
  * 第一个参数是 企业 appkey
26
26
  * 第二个参数是 配置参数
27
+ * 第三个参数 环境配置 默认普通企业,传入overseas为海外企业
27
28
  */
28
29
 
29
30
  YSF.init('f13509f5e8b8e1fbb388b3ddbee238c2', {
@@ -43,7 +44,7 @@ YSF.init('f13509f5e8b8e1fbb388b3ddbee238c2', {
43
44
  |---|---|---| ---| ---|
44
45
  | 第一个参数(appkey) | String | 企业 appkey | 是 | -- |
45
46
  | 第二个参数(配置) | Object | sdk 入口配置 | 否 | -- |
46
- | 第三个参数(配置) | String | 普通企业不需要传,海外版本企业:'servehub' | 否 | -- |
47
+ | 第三个参数(配置) | String | 普通企业不需要传,海外版本企业:'overseas' | 否 | -- |
47
48
 
48
49
 
49
50
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,49 @@
1
- export default YSF;
2
- declare namespace YSF {
3
- function init(appKey: any, objParams: any, env: any): Promise<any>;
1
+ export interface objParamsTyoe {
2
+ templateId?: string | number;
3
+ shuntId?: Number;
4
+ sessionInvite?: Boolean;
5
+ hidden?: Boolean;
6
+ }
7
+ type apiTypes = 'onready' | 'product' | 'logoff' | 'open' | 'url' | 'onunread' | 'getUnreadMsg' | 'getConversation' | 'onConversation' | 'onSessionMessage' | 'config';
8
+ export interface OptionsType {
9
+ uid?: string;
10
+ name?: string;
11
+ email?: string;
12
+ mobile?: string;
13
+ bid?: string;
14
+ data?: string;
15
+ staffid?: string;
16
+ groupid?: string;
17
+ shuntId?: string;
18
+ robotShuntSwitch?: 1 | 0;
19
+ level?: number;
20
+ qtype?: number;
21
+ welcomeTemplateId?: number;
22
+ success?: () => void;
23
+ error?: () => void;
24
+ connectYunxin?: boolean;
25
+ wxworkAppId?: string;
26
+ spkf?: 1 | 0;
27
+ isShowBack?: 1 | 0;
28
+ language?: string;
29
+ shortcutTemplateId?: number;
30
+ layerSize?: {
31
+ width?: number;
32
+ height?: number;
33
+ inputHeight?: number;
34
+ };
35
+ [string: string]: any;
36
+ }
37
+ export type YsfSdk = (key: apiTypes, options?: OptionsType) => void;
38
+ export type EnvType = 'test' | 'release' | 'online' | 'overseas';
39
+ export interface YSFType {
40
+ init: (appKey: string, objParams?: objParamsTyoe, env?: EnvType) => Promise<YsfSdk>;
4
41
  }
42
+ declare global {
43
+ interface Window {
44
+ ysf: Function;
45
+ }
46
+ }
47
+
48
+ declare const YSF: YSFType;
49
+ export default YSF;
package/dist/index.js CHANGED
@@ -7,49 +7,54 @@ exports.default = void 0;
7
7
  var mapEnv = {
8
8
  test: 'qytest.netease.com',
9
9
  release: 'qiyukf.netease.com',
10
- online: 'qiyukf.com'
10
+ online: 'qiyukf.com',
11
+ overseas: 'servehub.aiconn.com'
11
12
  };
12
13
  var TIMEOUT = 30000;
13
14
  var YSF = {};
14
-
15
15
  YSF.init = function (appKey, objParams, env) {
16
- // 日志上报
17
- var img = new Image(); // ua信息在request headers中有带过去,不需要在链接重新传了~
18
-
19
- img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey;
16
+ try {
17
+ // 日志上报
18
+ var img = new Image();
19
+ // ua信息在request headers中有带过去,不需要在链接重新传了~
20
+ img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey;
21
+ } catch (error) {
22
+ console.log(error);
23
+ }
24
+
25
+ // eslint-disable-next-line compat/compat
20
26
  var promise = new Promise(function (resolve, reject) {
21
27
  if (!appKey) {
22
28
  reject(new Error('appKey必填'));
23
29
  }
24
-
25
30
  if (Object.prototype.toString.call(objParams) !== '[object Object]') {
26
31
  reject(new Error('参数类型错误,第二个参数应该是object'));
27
32
  }
28
-
29
33
  var ret = [];
30
-
31
34
  if (objParams) {
32
35
  for (var item in objParams) {
33
36
  console.log(item);
34
37
  ret.push(item + "=" + objParams[item]);
35
38
  }
36
39
  }
37
-
38
40
  var params = ret.length ? "?" + ret.join('&') : '';
39
41
  var head = document.getElementsByTagName('head')[0];
40
42
  var script = document.createElement('script');
41
43
  script.type = 'text/javascript';
42
44
  script.async = true;
43
- script.timeout = TIMEOUT;
44
- script.src = "https://" + mapEnv[env || 'online'] + "/script/" + appKey + ".js" + params;
45
+ if (env && !mapEnv[env]) {
46
+ script.src = "//" + env + "/script/" + appKey + ".js" + params;
47
+ } else {
48
+ script.src = "//" + mapEnv[env || 'online'] + "/script/" + appKey + ".js" + params;
49
+ }
50
+ // eslint-disable-next-line prefer-const
45
51
  var timeout;
46
-
47
52
  function onScriptComplete(errType, event) {
48
53
  script.onerror = null;
49
54
  script.onload = null;
50
55
  var errorMsg = '';
51
- clearTimeout(timeout); // 加载成功
52
-
56
+ clearTimeout(timeout);
57
+ // 加载成功
53
58
  if (window.ysf) {
54
59
  window.ysf('onready', function () {
55
60
  // sdk执行完成
@@ -64,32 +69,28 @@ YSF.init = function (appKey, objParams, env) {
64
69
  } else {
65
70
  // timeout error
66
71
  errorMsg = 'SDK_LOADING_TIMEOUT';
67
- } // 上报错误信息
68
-
69
-
70
- var _img = new Image();
71
-
72
- _img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey + "&error=" + errorMsg;
72
+ }
73
+ // 上报错误信息
74
+ try {
75
+ var _img = new Image();
76
+ _img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey + "&error=" + errorMsg;
77
+ } catch (error) {
78
+ console.log(error);
79
+ }
73
80
  reject(new Error(errorMsg));
74
81
  }
75
82
  }
76
-
77
83
  timeout = setTimeout(function () {
78
84
  return onScriptComplete('timeout');
79
85
  }, TIMEOUT);
80
-
81
86
  script.onerror = function (event) {
82
87
  return onScriptComplete('loaderror', event);
83
88
  };
84
-
85
89
  script.onload = function (event) {
86
90
  return onScriptComplete('onload', event);
87
91
  };
88
-
89
92
  head.appendChild(script);
90
93
  });
91
94
  return promise;
92
95
  };
93
-
94
- var _default = YSF;
95
- exports.default = _default;
96
+ var _default = exports.default = YSF;
package/es/index.d.ts CHANGED
@@ -1,4 +1,49 @@
1
- export default YSF;
2
- declare namespace YSF {
3
- function init(appKey: any, objParams: any, env: any): Promise<any>;
1
+ export interface objParamsTyoe {
2
+ templateId?: string | number;
3
+ shuntId?: Number;
4
+ sessionInvite?: Boolean;
5
+ hidden?: Boolean;
6
+ }
7
+ type apiTypes = 'onready' | 'product' | 'logoff' | 'open' | 'url' | 'onunread' | 'getUnreadMsg' | 'getConversation' | 'onConversation' | 'onSessionMessage' | 'config';
8
+ export interface OptionsType {
9
+ uid?: string;
10
+ name?: string;
11
+ email?: string;
12
+ mobile?: string;
13
+ bid?: string;
14
+ data?: string;
15
+ staffid?: string;
16
+ groupid?: string;
17
+ shuntId?: string;
18
+ robotShuntSwitch?: 1 | 0;
19
+ level?: number;
20
+ qtype?: number;
21
+ welcomeTemplateId?: number;
22
+ success?: () => void;
23
+ error?: () => void;
24
+ connectYunxin?: boolean;
25
+ wxworkAppId?: string;
26
+ spkf?: 1 | 0;
27
+ isShowBack?: 1 | 0;
28
+ language?: string;
29
+ shortcutTemplateId?: number;
30
+ layerSize?: {
31
+ width?: number;
32
+ height?: number;
33
+ inputHeight?: number;
34
+ };
35
+ [string: string]: any;
36
+ }
37
+ export type YsfSdk = (key: apiTypes, options?: OptionsType) => void;
38
+ export type EnvType = 'test' | 'release' | 'online' | 'overseas';
39
+ export interface YSFType {
40
+ init: (appKey: string, objParams?: objParamsTyoe, env?: EnvType) => Promise<YsfSdk>;
4
41
  }
42
+ declare global {
43
+ interface Window {
44
+ ysf: Function;
45
+ }
46
+ }
47
+
48
+ declare const YSF: YSFType;
49
+ export default YSF;
package/es/index.js CHANGED
@@ -2,49 +2,53 @@ var mapEnv = {
2
2
  test: 'qytest.netease.com',
3
3
  release: 'qiyukf.netease.com',
4
4
  online: 'qiyukf.com',
5
- servehub: 'servehub.aiconn.com'
5
+ overseas: 'servehub.aiconn.com'
6
6
  };
7
7
  var TIMEOUT = 30000;
8
8
  var YSF = {};
9
-
10
9
  YSF.init = function (appKey, objParams, env) {
11
- // 日志上报
12
- var img = new Image(); // ua信息在request headers中有带过去,不需要在链接重新传了~
13
-
14
- img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey;
10
+ try {
11
+ // 日志上报
12
+ var img = new Image();
13
+ // ua信息在request headers中有带过去,不需要在链接重新传了~
14
+ img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey;
15
+ } catch (error) {
16
+ console.log(error);
17
+ }
18
+
19
+ // eslint-disable-next-line compat/compat
15
20
  var promise = new Promise(function (resolve, reject) {
16
21
  if (!appKey) {
17
22
  reject(new Error('appKey必填'));
18
23
  }
19
-
20
24
  if (Object.prototype.toString.call(objParams) !== '[object Object]') {
21
25
  reject(new Error('参数类型错误,第二个参数应该是object'));
22
26
  }
23
-
24
27
  var ret = [];
25
-
26
28
  if (objParams) {
27
29
  for (var item in objParams) {
28
30
  console.log(item);
29
31
  ret.push(item + "=" + objParams[item]);
30
32
  }
31
33
  }
32
-
33
34
  var params = ret.length ? "?" + ret.join('&') : '';
34
35
  var head = document.getElementsByTagName('head')[0];
35
36
  var script = document.createElement('script');
36
37
  script.type = 'text/javascript';
37
38
  script.async = true;
38
- script.timeout = TIMEOUT;
39
- script.src = "https://" + mapEnv[env || 'online'] + "/script/" + appKey + ".js" + params;
39
+ if (env && !mapEnv[env]) {
40
+ script.src = "//" + env + "/script/" + appKey + ".js" + params;
41
+ } else {
42
+ script.src = "//" + mapEnv[env || 'online'] + "/script/" + appKey + ".js" + params;
43
+ }
44
+ // eslint-disable-next-line prefer-const
40
45
  var timeout;
41
-
42
46
  function onScriptComplete(errType, event) {
43
47
  script.onerror = null;
44
48
  script.onload = null;
45
49
  var errorMsg = '';
46
- clearTimeout(timeout); // 加载成功
47
-
50
+ clearTimeout(timeout);
51
+ // 加载成功
48
52
  if (window.ysf) {
49
53
  window.ysf('onready', function () {
50
54
  // sdk执行完成
@@ -59,31 +63,28 @@ YSF.init = function (appKey, objParams, env) {
59
63
  } else {
60
64
  // timeout error
61
65
  errorMsg = 'SDK_LOADING_TIMEOUT';
62
- } // 上报错误信息
63
-
64
-
65
- var _img = new Image();
66
-
67
- _img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey + "&error=" + errorMsg;
66
+ }
67
+ // 上报错误信息
68
+ try {
69
+ var _img = new Image();
70
+ _img.src = "https://qiyukf.com/sdk/res/img/loading.gif?t=" + new Date().getTime() + "&k=" + appKey + "&error=" + errorMsg;
71
+ } catch (error) {
72
+ console.log(error);
73
+ }
68
74
  reject(new Error(errorMsg));
69
75
  }
70
76
  }
71
-
72
77
  timeout = setTimeout(function () {
73
78
  return onScriptComplete('timeout');
74
79
  }, TIMEOUT);
75
-
76
80
  script.onerror = function (event) {
77
81
  return onScriptComplete('loaderror', event);
78
82
  };
79
-
80
83
  script.onload = function (event) {
81
84
  return onScriptComplete('onload', event);
82
85
  };
83
-
84
86
  head.appendChild(script);
85
87
  });
86
88
  return promise;
87
89
  };
88
-
89
90
  export default YSF;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neysf/qiyu-web-sdk",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "author": "ysfed",
5
5
  "bugs": {
6
6
  "url": "https://github.com/NSFI/qiyu-web-sdk/issues"