xctc-utils 1.6.6 → 1.6.8
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/README.md +1 -1
- package/dist/weixin/index.d.ts +5 -0
- package/dist/weixin/index.js +47 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -175,7 +175,7 @@ useUtils.date.formatStrTime(str) // 返回时间戳 秒
|
|
|
175
175
|
#### 计算当前富文本内容高度
|
|
176
176
|
```
|
|
177
177
|
var option = {
|
|
178
|
-
id:"ueditor" , // 富文本DOM容器 id
|
|
178
|
+
id:"ueditor" , // 富文本DOM容器 id 默认不传
|
|
179
179
|
content:"" , // ueditor 富文本内容
|
|
180
180
|
}
|
|
181
181
|
// 返回的富文本内容包含input dom元素,input元素的content-data-height属性计算富文本高度
|
package/dist/weixin/index.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ interface configOption {
|
|
|
8
8
|
cryptokey?: string;
|
|
9
9
|
isPassLogin?: boolean;
|
|
10
10
|
redirectUri?: string;
|
|
11
|
+
appIdKey?: string;
|
|
12
|
+
jsCodeKey?: string;
|
|
13
|
+
debuggerStatus?: boolean;
|
|
11
14
|
}
|
|
12
15
|
export declare function getUrlCode(config: configOption): void;
|
|
13
16
|
export declare function envSDK(): any;
|
|
@@ -19,6 +22,8 @@ interface ShareConfig {
|
|
|
19
22
|
jsApiList?: string[];
|
|
20
23
|
openTagList?: string[];
|
|
21
24
|
url?: string;
|
|
25
|
+
urlKey?: string;
|
|
26
|
+
appIdKey?: string;
|
|
22
27
|
}
|
|
23
28
|
export declare function configReady(config: ShareConfig): void;
|
|
24
29
|
interface ShareOptions {
|
package/dist/weixin/index.js
CHANGED
|
@@ -49,7 +49,7 @@ function getUrlCode(config) {
|
|
|
49
49
|
weixinConfig['codeKey'] = codeKey;
|
|
50
50
|
weixinConfig['stateKey'] = stateKey;
|
|
51
51
|
(0, index_1.useSessionStorage)("weixinConfig", weixinConfig);
|
|
52
|
-
var _b = weixinConfig.cryptoiv, cryptoiv = _b === void 0 ?
|
|
52
|
+
var _b = weixinConfig.cryptoiv, cryptoiv = _b === void 0 ? defaultIv : _b, _c = weixinConfig.cryptokey, cryptokey = _c === void 0 ? defaultKey : _c, _d = weixinConfig.debuggerStatus, debuggerStatus = _d === void 0 ? false : _d;
|
|
53
53
|
var search = loc.search; // ?code=0916SzFa1KH9TA0Ke7Ha1AQx6446SzFr&state=123
|
|
54
54
|
initSdk(); // 加载微信sdk环境
|
|
55
55
|
// 获取地址栏返回 code 参数值
|
|
@@ -57,18 +57,29 @@ function getUrlCode(config) {
|
|
|
57
57
|
// 默认第一次通过链接进入系统,没有code和state
|
|
58
58
|
var searchIndex = -1;
|
|
59
59
|
var stateIndex = -1;
|
|
60
|
+
var msgStr = "";
|
|
60
61
|
if (search) {
|
|
61
62
|
searchIndex = search.indexOf("code=");
|
|
62
63
|
stateIndex = search.indexOf("state=");
|
|
63
64
|
}
|
|
65
|
+
// 本地未存储微信授权 code 值, 并且地址栏携带有 code 值 ,则先存储该值
|
|
66
|
+
if (!localCode && searchIndex != -1) {
|
|
67
|
+
params.get({ keys: ['code', 'state'], cache: "session", key: cryptokey, iv: cryptoiv });
|
|
68
|
+
}
|
|
64
69
|
// 如果本地已经存储 微信授权返回的 code 值,证明用户在执行刷新操作,不再执行微信授权逻辑
|
|
65
70
|
if (localCode && stateIndex == -1 && searchIndex == -1) {
|
|
71
|
+
if (debuggerStatus) {
|
|
72
|
+
alert("本地已经存储 code ,不再执行微信授权逻辑");
|
|
73
|
+
}
|
|
66
74
|
return;
|
|
67
75
|
}
|
|
68
76
|
// 如果链接地址中带有code,证明执行微信授权登录,并返回授权所需的 code 参数
|
|
69
77
|
if (searchIndex >= 0) {
|
|
70
78
|
if (localCode) {
|
|
71
79
|
// localCode 存在,用户已执行微信跳转链接,用户可能执行当前网页的刷新操作
|
|
80
|
+
if (debuggerStatus) {
|
|
81
|
+
alert("searchIndex 》 0 ,本地已经存储 code ,不再执行微信授权逻辑");
|
|
82
|
+
}
|
|
72
83
|
return;
|
|
73
84
|
}
|
|
74
85
|
else {
|
|
@@ -76,6 +87,9 @@ function getUrlCode(config) {
|
|
|
76
87
|
var urlParamsData = (0, index_1.getSessionStorage)("urlParamsData") || "";
|
|
77
88
|
var codeData = ((_a = urlParamsData === null || urlParamsData === void 0 ? void 0 : urlParamsData.code) === null || _a === void 0 ? void 0 : _a.str) || ""; // 第一次进入系统为空
|
|
78
89
|
if (codeData) {
|
|
90
|
+
if (debuggerStatus) {
|
|
91
|
+
alert("地址栏携带code已完成本地存储 ,执行微信授权逻辑");
|
|
92
|
+
}
|
|
79
93
|
login(codeData);
|
|
80
94
|
}
|
|
81
95
|
}
|
|
@@ -84,9 +98,16 @@ function getUrlCode(config) {
|
|
|
84
98
|
// 用户通过分享链接进入系统,此时含有 state 参数 , 无code参数
|
|
85
99
|
if (stateIndex >= 0) {
|
|
86
100
|
// 将 state进行本地存储,存储完成后跳转到微信授权页面
|
|
101
|
+
if (debuggerStatus) {
|
|
102
|
+
alert("用户通过分享链接进入系统,无code参数 ,跳转到code授权页面");
|
|
103
|
+
}
|
|
87
104
|
return getCode(); // 微信授权页面获取CODE
|
|
88
105
|
}
|
|
89
|
-
|
|
106
|
+
// && stateIndex == -1 && searchIndex == -1
|
|
107
|
+
if (!localCode && searchIndex == -1) {
|
|
108
|
+
if (debuggerStatus) {
|
|
109
|
+
alert("无本地code参数 ,跳转到code授权页面");
|
|
110
|
+
}
|
|
90
111
|
return getCode();
|
|
91
112
|
}
|
|
92
113
|
}
|
|
@@ -103,7 +124,8 @@ function cryptoConfig(key, iv) {
|
|
|
103
124
|
}
|
|
104
125
|
// 执行微信登录
|
|
105
126
|
function login(code) {
|
|
106
|
-
var
|
|
127
|
+
var _a;
|
|
128
|
+
var appId = weixinConfig.appId, http = weixinConfig.http, redirectUri = weixinConfig.redirectUri, _b = weixinConfig.appIdKey, appIdKey = _b === void 0 ? "app_id" : _b, _c = weixinConfig.jsCodeKey, jsCodeKey = _c === void 0 ? "js_code" : _c;
|
|
107
129
|
if (!appId) {
|
|
108
130
|
console.error("未正常传入微信公众号appId");
|
|
109
131
|
return;
|
|
@@ -112,10 +134,10 @@ function login(code) {
|
|
|
112
134
|
console.error("未获取到微信授权的code参数");
|
|
113
135
|
return;
|
|
114
136
|
}
|
|
115
|
-
var obj = {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
137
|
+
var obj = (_a = {},
|
|
138
|
+
_a[appIdKey] = appId,
|
|
139
|
+
_a[jsCodeKey] = code,
|
|
140
|
+
_a);
|
|
119
141
|
if (!http) {
|
|
120
142
|
console.error("未正常传入微信授权登录http函数");
|
|
121
143
|
return;
|
|
@@ -229,8 +251,6 @@ function envSDK() {
|
|
|
229
251
|
exports.envSDK = envSDK;
|
|
230
252
|
// 前往微信授权登录页面
|
|
231
253
|
function getCode(appId, scope) {
|
|
232
|
-
var _a = weixinConfig.cryptoiv, cryptoiv = _a === void 0 ? defaultIv : _a, _b = weixinConfig.cryptokey, cryptokey = _b === void 0 ? defaultKey : _b;
|
|
233
|
-
params.get({ keys: ['code', 'state'], cache: "session", key: cryptokey, iv: cryptoiv });
|
|
234
254
|
if ((0, utils_1.weixinBrowser)()) {
|
|
235
255
|
var id = "";
|
|
236
256
|
if (weixinConfig['appId']) {
|
|
@@ -275,23 +295,25 @@ var defaultOpenTagList = [
|
|
|
275
295
|
"wx-open-audio"
|
|
276
296
|
];
|
|
277
297
|
function configReady(config) {
|
|
278
|
-
|
|
298
|
+
var _a;
|
|
299
|
+
var _b = config || {}, appId = _b.appId, url = _b.url, _c = _b.urlKey, urlKey = _c === void 0 ? "url" : _c, _d = _b.appIdKey, appIdKey = _d === void 0 ? "appId" : _d, cb = _b.cb, _e = _b.jsApiList, jsApiList = _e === void 0 ? [] : _e, _f = _b.openTagList, openTagList = _f === void 0 ? [] : _f, _g = _b.http, http = _g === void 0 ? "" : _g;
|
|
300
|
+
if (!http)
|
|
279
301
|
return;
|
|
280
|
-
var
|
|
281
|
-
if (
|
|
282
|
-
|
|
302
|
+
var currentUrl = loc.origin;
|
|
303
|
+
if (url) {
|
|
304
|
+
currentUrl = url;
|
|
283
305
|
}
|
|
284
|
-
var param = {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
var
|
|
289
|
-
var
|
|
290
|
-
if (
|
|
291
|
-
|
|
306
|
+
var param = (_a = {},
|
|
307
|
+
_a[urlKey] = currentUrl,
|
|
308
|
+
_a[appIdKey] = appId,
|
|
309
|
+
_a);
|
|
310
|
+
var jsApiListData = defaultJsApiList;
|
|
311
|
+
var openTagListData = defaultOpenTagList;
|
|
312
|
+
if (jsApiList === null || jsApiList === void 0 ? void 0 : jsApiList.length) {
|
|
313
|
+
jsApiListData = jsApiListData;
|
|
292
314
|
}
|
|
293
|
-
if (
|
|
294
|
-
|
|
315
|
+
if (openTagList === null || openTagList === void 0 ? void 0 : openTagList.length) {
|
|
316
|
+
openTagListData = openTagList;
|
|
295
317
|
}
|
|
296
318
|
config.http(param).then(function (res) {
|
|
297
319
|
if (res.code == 0) {
|
|
@@ -303,8 +325,8 @@ function configReady(config) {
|
|
|
303
325
|
timestamp: data.timestamp,
|
|
304
326
|
nonceStr: data.noncestr,
|
|
305
327
|
signature: data.signature,
|
|
306
|
-
jsApiList:
|
|
307
|
-
openTagList:
|
|
328
|
+
jsApiList: jsApiListData,
|
|
329
|
+
openTagList: openTagListData,
|
|
308
330
|
});
|
|
309
331
|
wx.ready(function (res) {
|
|
310
332
|
console.log("加载微信分享配置完成:", res);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xctc-utils",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.8",
|
|
4
4
|
"description": "localStorage存储\r ```\r sessionStorage存储\r ```\r crypto-js加密、解密\r ```\r 微信授权登录、微信分享\r ```\r 设备环境获取\r ```\r 是否是微信浏览器\r ```\r 时间戳转时间,字符串转时间戳",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|