@xybplugins/xyb-agent 0.0.23 → 0.0.25
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 +100 -78
- package/dist/index.esm.js +1 -1
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# xybAgent SDK文档
|
|
2
2
|
|
|
3
|
-
> 最新版本:
|
|
3
|
+
> 最新版本:
|
|
4
|
+
> * JSSDK:2.0.10
|
|
5
|
+
> * npm-package: 0.0.23
|
|
6
|
+
|
|
7
|
+
## npm包相关说明
|
|
8
|
+
|
|
9
|
+
* 安装/更新命令
|
|
10
|
+
```shell
|
|
11
|
+
npm i @xybplugins/xyb-agent@latest --save-dev
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* 注意事项
|
|
15
|
+
* 人脸识别、定位信息获取,都只支持在湘易办移动政务上部署的应用
|
|
16
|
+
* npm包的使用场景不兼容`湘易办微信/支付宝小程序-H5-H5`
|
|
17
|
+
* 较之前的JSSDK版本差异,只有引入方式的变化,其它并无核心上的变化
|
|
4
18
|
|
|
5
19
|
## 使用场景:
|
|
6
20
|
|
|
@@ -14,18 +28,20 @@
|
|
|
14
28
|
> 1. `湘易办APP-小程序`:湘易办APP内的小程序
|
|
15
29
|
> 2. `湘易办APP-小程序-webview`:湘易办小程序内通过webview嵌套的H5页面
|
|
16
30
|
> 3. `湘易办APP-webview`:湘易办APP通过webview嵌套的H5页面
|
|
17
|
-
> 4. `三方小程序`: 微信/支付宝/百度/今日头条
|
|
31
|
+
> 4. `三方小程序`: 微信/支付宝/百度/今日头条 等其他小程序环境
|
|
32
|
+
> 5. `三方小程序-webview`:被湘易办微信/支付宝 小程序通过webview嵌套的H5页面
|
|
18
33
|
|
|
19
34
|
### 范围说明
|
|
20
35
|
|
|
21
36
|
> 该JSSDK仅支持在湘易办小程序、湘易办小程序嵌套的H5、湘易办APP嵌套的H5中使用
|
|
22
37
|
|
|
23
|
-
| 环境名称 | 是否支持 |
|
|
24
|
-
|
|
25
|
-
| 湘易办APP-小程序 | `是` | 1.1.4 | 完全支持 |
|
|
26
|
-
| 湘易办APP-小程序-webview | `是` | 1.1.8 | 完全支持 |
|
|
27
|
-
| 湘易办APP-webview | `是` | 2.0.0 | 部分支持,持续迭代中 |
|
|
28
|
-
| 三方小程序 | `否` | --
|
|
38
|
+
| 环境名称 | 是否支持 | JSSDK适配版本(最低) | npm包适配版本(最低) | 备注 |
|
|
39
|
+
|:-------------------|------|---------------|--------------|------------|
|
|
40
|
+
| 湘易办APP-小程序 | `是` | `1.1.4` | `0.0.11` | 完全支持 |
|
|
41
|
+
| 湘易办APP-小程序-webview | `是` | `1.1.8` | `0.0.11` | 完全支持 |
|
|
42
|
+
| 湘易办APP-webview | `是` | `2.0.0` | `0.0.11` | 部分支持,持续迭代中 |
|
|
43
|
+
| 三方小程序 | `否` | -- | -- | 不支持 |
|
|
44
|
+
| 三方小程序-webview | `是` | -- | `0.0.23` | 部分支持,持续迭代中 |
|
|
29
45
|
|
|
30
46
|
## 注意事项:
|
|
31
47
|
|
|
@@ -108,12 +124,13 @@ this.$xybAgent.init('development').then(res => {
|
|
|
108
124
|
|
|
109
125
|
* 环境适配说明
|
|
110
126
|
|
|
111
|
-
| 环境类型 | 是否适配 |
|
|
112
|
-
|
|
113
|
-
| 湘易办小程序 | `是` | `1.1.4`
|
|
114
|
-
| 湘易办小程序-webview | `是` | `1.1.8`
|
|
115
|
-
| 湘易办 -
|
|
116
|
-
| 三方小程序 | `否` | --
|
|
127
|
+
| 环境类型 | 是否适配 | JSSDK版本(最低) | npm包版本(最低) |
|
|
128
|
+
|----------------|:----:|:------------|------------|
|
|
129
|
+
| 湘易办小程序 | `是` | `1.1.4` | `0.0.11` |
|
|
130
|
+
| 湘易办小程序-webview | `是` | `1.1.8` | `0.0.11` |
|
|
131
|
+
| 湘易办 - webview | `是` | `2.0.0` | `0.0.11` |
|
|
132
|
+
| 三方小程序 | `否` | -- | -- |
|
|
133
|
+
| 三方小程序-webview | `是` | -- | `0.0.11` |
|
|
117
134
|
|
|
118
135
|
* 入参
|
|
119
136
|
|
|
@@ -149,12 +166,13 @@ this.$xybAgent.track('xyb_ksj', {
|
|
|
149
166
|
|
|
150
167
|
* 环境适配说明
|
|
151
168
|
|
|
152
|
-
| 环境类型 | 是否适配 |
|
|
153
|
-
|
|
154
|
-
| 湘易办小程序 | `是` | `1.1.4`
|
|
155
|
-
| 湘易办小程序-webview | `是` | `1.1.8`
|
|
156
|
-
| 湘易办 -
|
|
157
|
-
| 三方小程序 | `否` | --
|
|
169
|
+
| 环境类型 | 是否适配 | JSSDK版本(最低) | NPM包版本(最低)
|
|
170
|
+
|----------------|:----:|:------------|------------|
|
|
171
|
+
| 湘易办小程序 | `是` | `1.1.4` | `0.0.11` |
|
|
172
|
+
| 湘易办小程序-webview | `是` | `1.1.8` | `0.0.11` |
|
|
173
|
+
| 湘易办 - webview | `是` | `2.0.0` | `0.0.11` |
|
|
174
|
+
| 三方小程序 | `否` | -- | -- |
|
|
175
|
+
| 三方小程序-webview | `是` | -- | -- |
|
|
158
176
|
|
|
159
177
|
* 入参-`无`
|
|
160
178
|
|
|
@@ -191,12 +209,13 @@ getAccessLink().then(res => {
|
|
|
191
209
|
|
|
192
210
|
* 环境适配说明
|
|
193
211
|
|
|
194
|
-
| 环境类型 | 是否适配 |
|
|
195
|
-
|
|
196
|
-
| 湘易办小程序 | `是` | `1.1.4`
|
|
197
|
-
| 湘易办小程序-webview | `是` | `1.1.8`
|
|
198
|
-
| 湘易办 -
|
|
199
|
-
| 三方小程序 | `否` | --
|
|
212
|
+
| 环境类型 | 是否适配 | JSSDK版本(最低) | NPM包版本(最低) |
|
|
213
|
+
|----------------|:----:|:------------|------------|
|
|
214
|
+
| 湘易办小程序 | `是` | `1.1.4` | `0.0.23` |
|
|
215
|
+
| 湘易办小程序-webview | `是` | `1.1.8` | `0.0.23` |
|
|
216
|
+
| 湘易办 - webview | `是` | `2.0.0` | `0.0.23` |
|
|
217
|
+
| 三方小程序 | `否` | -- | -- |
|
|
218
|
+
| 三方小程序-webview | `是` | -- | `0.0.23` |
|
|
200
219
|
|
|
201
220
|
* 入参
|
|
202
221
|
|
|
@@ -259,12 +278,13 @@ this.$xybAgent.authFace(userInfo).then(({isSuccess}) => {
|
|
|
259
278
|
|
|
260
279
|
* 环境适配说明
|
|
261
280
|
|
|
262
|
-
| 环境类型 | 是否适配 |
|
|
263
|
-
|
|
264
|
-
| 湘易办小程序 | `是` | `1.1.4`
|
|
265
|
-
| 湘易办小程序-webview | `是` | `1.1.8`
|
|
266
|
-
| 湘易办 -
|
|
267
|
-
| 三方小程序 | `否` | --
|
|
281
|
+
| 环境类型 | 是否适配 | JSSDK版本(最低) | NPM包版本(最低) |
|
|
282
|
+
|----------------|:----:|:------------|------------|
|
|
283
|
+
| 湘易办小程序 | `是` | `1.1.4` | `0.0.11` |
|
|
284
|
+
| 湘易办小程序-webview | `是` | `1.1.8` | `0.0.11` |
|
|
285
|
+
| 湘易办 - webview | `是` | `2.0.0` | `0.0.11` |
|
|
286
|
+
| 三方小程序 | `否` | -- | -- |
|
|
287
|
+
| 三方小程序-webview | `是` | -- | `0.0.23` |
|
|
268
288
|
|
|
269
289
|
* 入参-`无`
|
|
270
290
|
|
|
@@ -303,6 +323,8 @@ this.$xybAgent.getLocationInfo().then(({location, isSuccess}) => {
|
|
|
303
323
|
}
|
|
304
324
|
})
|
|
305
325
|
```
|
|
326
|
+
* 注意事项 - npm 包
|
|
327
|
+
* 返回的坐标系是GCJ02(国测坐标系),若需要转换为其他坐标系,需业务侧自行进行转换处理
|
|
306
328
|
|
|
307
329
|
### 获取登录状态-`getLoginStatus`
|
|
308
330
|
|
|
@@ -314,7 +336,7 @@ this.$xybAgent.getLocationInfo().then(({location, isSuccess}) => {
|
|
|
314
336
|
|----------------|:----:|:---------|
|
|
315
337
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
316
338
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
317
|
-
| 湘易办 -
|
|
339
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
318
340
|
| 三方小程序 | `否` | -- |
|
|
319
341
|
|
|
320
342
|
* 入参-`无`
|
|
@@ -355,7 +377,7 @@ this.$xybAgent.getLoginStatus().then(({logined}) => {
|
|
|
355
377
|
|----------------|:----:|:---------|
|
|
356
378
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
357
379
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
358
|
-
| 湘易办 -
|
|
380
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
359
381
|
| 三方小程序 | `否` | -- |
|
|
360
382
|
|
|
361
383
|
* 入参-`无`
|
|
@@ -401,7 +423,7 @@ this.$xybAgent.getAppInfo().then(res => {
|
|
|
401
423
|
|----------------|:----:|:---------|
|
|
402
424
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
403
425
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
404
|
-
| 湘易办 -
|
|
426
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
405
427
|
| 三方小程序 | `否` | -- |
|
|
406
428
|
|
|
407
429
|
* 入参-`无`
|
|
@@ -441,7 +463,7 @@ this.$xybAgent.scanCode().then(({text}) => {
|
|
|
441
463
|
|----------------|:----:|:---------|
|
|
442
464
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
443
465
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
444
|
-
| 湘易办 -
|
|
466
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
445
467
|
| 三方小程序 | `否` | -- |
|
|
446
468
|
|
|
447
469
|
* 入参
|
|
@@ -494,7 +516,7 @@ this.$xybAgent.chooseImg().then(res => {
|
|
|
494
516
|
|----------------|:----:|:---------|
|
|
495
517
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
496
518
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
497
|
-
| 湘易办 -
|
|
519
|
+
| 湘易办 - webview | `否` | -- |
|
|
498
520
|
| 三方小程序 | `否` | -- |
|
|
499
521
|
|
|
500
522
|
* 入参
|
|
@@ -523,7 +545,7 @@ this.$xybAgent.imgPreview(dataInfo);
|
|
|
523
545
|
|----------------|:----:|:---------|
|
|
524
546
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
525
547
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
526
|
-
| 湘易办 -
|
|
548
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
527
549
|
| 三方小程序 | `否` | -- |
|
|
528
550
|
|
|
529
551
|
* 入参-`无`
|
|
@@ -566,7 +588,7 @@ this.$xybAgent.chooseFile().then(res => {
|
|
|
566
588
|
|----------------|:----:|:---------|
|
|
567
589
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
568
590
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
569
|
-
| 湘易办 -
|
|
591
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
570
592
|
| 三方小程序 | `否` | -- |
|
|
571
593
|
|
|
572
594
|
* 入参
|
|
@@ -641,7 +663,7 @@ this.$xybAgent.fileUpload(dataInfo).then(res => {
|
|
|
641
663
|
|----------------|:----:|:---------|
|
|
642
664
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
643
665
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
644
|
-
| 湘易办 -
|
|
666
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
645
667
|
| 三方小程序 | `否` | -- |
|
|
646
668
|
|
|
647
669
|
* 入参
|
|
@@ -702,7 +724,7 @@ this.$xybAgent.fileDownload(dataInfo).then(res => {
|
|
|
702
724
|
|----------------|:----:|:---------|
|
|
703
725
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
704
726
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
705
|
-
| 湘易办 -
|
|
727
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
706
728
|
| 三方小程序 | `否` | -- |
|
|
707
729
|
|
|
708
730
|
* 入参
|
|
@@ -731,7 +753,7 @@ this.$xybAgent.filePreview(fileInfo);
|
|
|
731
753
|
|----------------|:----:|:---------|
|
|
732
754
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
733
755
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
734
|
-
| 湘易办 -
|
|
756
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
735
757
|
| 三方小程序 | `否` | -- |
|
|
736
758
|
|
|
737
759
|
* 入参
|
|
@@ -760,7 +782,7 @@ this.$xybAgent.openLocalFile(fileInfo)
|
|
|
760
782
|
|----------------|:----:|:---------|
|
|
761
783
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
762
784
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
763
|
-
| 湘易办 -
|
|
785
|
+
| 湘易办 - webview | `否` | -- |
|
|
764
786
|
| 三方小程序 | `否` | -- |
|
|
765
787
|
|
|
766
788
|
* 入参
|
|
@@ -789,7 +811,7 @@ this.$xybAgent.openThirdFile(fileInfo);
|
|
|
789
811
|
|----------------|:----:|:---------|
|
|
790
812
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
791
813
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
792
|
-
| 湘易办 -
|
|
814
|
+
| 湘易办 - webview | `否` | -- |
|
|
793
815
|
| 三方小程序 | `否` | -- |
|
|
794
816
|
|
|
795
817
|
* 入参
|
|
@@ -816,7 +838,7 @@ this.$xybAgent.sendMatterId(matterId);
|
|
|
816
838
|
|----------------|:----:|:---------|
|
|
817
839
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
818
840
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
819
|
-
| 湘易办 -
|
|
841
|
+
| 湘易办 - webview | `否` | -- |
|
|
820
842
|
| 三方小程序 | `否` | -- |
|
|
821
843
|
|
|
822
844
|
* 入参
|
|
@@ -854,7 +876,7 @@ this.$xybAgent.autoSendMatterId(matterIdList);
|
|
|
854
876
|
|----------------|:----:|:---------|
|
|
855
877
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
856
878
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
857
|
-
| 湘易办 -
|
|
879
|
+
| 湘易办 - webview | `否` | -- |
|
|
858
880
|
| 三方小程序 | `否` | -- |
|
|
859
881
|
|
|
860
882
|
* 入参
|
|
@@ -897,7 +919,7 @@ this.$xybAgent.showComment(dataInfo).then(({isSuccess}) => {
|
|
|
897
919
|
|----------------|:----:|:---------|
|
|
898
920
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
899
921
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
900
|
-
| 湘易办 -
|
|
922
|
+
| 湘易办 - webview | `否` | -- |
|
|
901
923
|
| 三方小程序 | `否` | -- |
|
|
902
924
|
|
|
903
925
|
* 入参
|
|
@@ -923,7 +945,7 @@ this.$xybAgent.setScreenLight(true);
|
|
|
923
945
|
|----------------|:----:|:---------|
|
|
924
946
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
925
947
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
926
|
-
| 湘易办 -
|
|
948
|
+
| 湘易办 - webview | `否` | -- |
|
|
927
949
|
| 三方小程序 | `否` | -- |
|
|
928
950
|
|
|
929
951
|
> 此API是一个异步任务,需使用async await / promise结构 获取回调值
|
|
@@ -963,7 +985,7 @@ this.$xybAgent.forbidScreenShot().then(({isSuccess}) => {
|
|
|
963
985
|
|----------------|:----:|:---------|
|
|
964
986
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
965
987
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
966
|
-
| 湘易办 -
|
|
988
|
+
| 湘易办 - webview | `否` | -- |
|
|
967
989
|
| 三方小程序 | `否` | -- |
|
|
968
990
|
|
|
969
991
|
* 入参
|
|
@@ -992,7 +1014,7 @@ this.$xybAgent.callPhone(phone);
|
|
|
992
1014
|
|----------------|:----:|:---------|
|
|
993
1015
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
994
1016
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
995
|
-
| 湘易办 -
|
|
1017
|
+
| 湘易办 - webview | `否` | -- |
|
|
996
1018
|
| 三方小程序 | `否` | -- |
|
|
997
1019
|
|
|
998
1020
|
* 入参-`无`
|
|
@@ -1030,7 +1052,7 @@ this.$xybAgent.getCacheSize().then(({cacheSize}) => {
|
|
|
1030
1052
|
|----------------|:----:|:---------|
|
|
1031
1053
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1032
1054
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1033
|
-
| 湘易办 -
|
|
1055
|
+
| 湘易办 - webview | `否` | -- |
|
|
1034
1056
|
| 三方小程序 | `否` | -- |
|
|
1035
1057
|
|
|
1036
1058
|
* 入参
|
|
@@ -1059,7 +1081,7 @@ this.$xybAgent.copyToClipboard(text);
|
|
|
1059
1081
|
|----------------|:----:|:---------|
|
|
1060
1082
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1061
1083
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1062
|
-
| 湘易办 -
|
|
1084
|
+
| 湘易办 - webview | `否` | -- |
|
|
1063
1085
|
| 三方小程序 | `否` | -- |
|
|
1064
1086
|
|
|
1065
1087
|
* 入参
|
|
@@ -1120,7 +1142,7 @@ this.$xybAgent.postMsgToOtherApp(msgInfo).then(({isSuccess}) => {
|
|
|
1120
1142
|
|----------------|:----:|:---------|
|
|
1121
1143
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1122
1144
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1123
|
-
| 湘易办 -
|
|
1145
|
+
| 湘易办 - webview | `否` | -- |
|
|
1124
1146
|
| 三方小程序 | `否` | -- |
|
|
1125
1147
|
|
|
1126
1148
|
* 入参-`无`
|
|
@@ -1167,7 +1189,7 @@ uni.onNativeEventReceive().then(({event, data}) => {
|
|
|
1167
1189
|
|----------------|:----:|:---------|
|
|
1168
1190
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1169
1191
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1170
|
-
| 湘易办 -
|
|
1192
|
+
| 湘易办 - webview | `否` | -- |
|
|
1171
1193
|
| 三方小程序 | `否` | -- |
|
|
1172
1194
|
|
|
1173
1195
|
* 入参
|
|
@@ -1215,7 +1237,7 @@ this.$xybAgent.openApp(dataInfo).then(({isSuccess}) => {
|
|
|
1215
1237
|
|----------------|:----:|:---------|
|
|
1216
1238
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1217
1239
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1218
|
-
| 湘易办 -
|
|
1240
|
+
| 湘易办 - webview | `否` | -- |
|
|
1219
1241
|
| 三方小程序 | `否` | -- |
|
|
1220
1242
|
|
|
1221
1243
|
* 入参
|
|
@@ -1262,21 +1284,21 @@ App({
|
|
|
1262
1284
|
```html
|
|
1263
1285
|
|
|
1264
1286
|
<template>
|
|
1265
|
-
|
|
1287
|
+
<web-view id="webview" src="yourPageUrl" @message="formatMessageInfo"></web-view>
|
|
1266
1288
|
</template>
|
|
1267
1289
|
|
|
1268
1290
|
<script>
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
}
|
|
1291
|
+
export default {
|
|
1292
|
+
methods: {
|
|
1293
|
+
|
|
1294
|
+
/**
|
|
1295
|
+
* @description: 处理webview页面传递过来的消息内容
|
|
1296
|
+
*/
|
|
1297
|
+
formatMessageInfo(event) {
|
|
1298
|
+
this.$xybAgent.initMessage(event, this.$xybAgent, this)
|
|
1299
|
+
}
|
|
1279
1300
|
}
|
|
1301
|
+
}
|
|
1280
1302
|
</script>
|
|
1281
1303
|
```
|
|
1282
1304
|
|
|
@@ -1302,7 +1324,7 @@ App({
|
|
|
1302
1324
|
|----------------|:----:|:---------|
|
|
1303
1325
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1304
1326
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1305
|
-
| 湘易办 -
|
|
1327
|
+
| 湘易办 - webview | `否` | -- |
|
|
1306
1328
|
| 三方小程序 | `否` | -- |
|
|
1307
1329
|
|
|
1308
1330
|
* 入参
|
|
@@ -1360,7 +1382,7 @@ this.$xybAgent.menuBtnConfig({
|
|
|
1360
1382
|
|----------------|:----:|:---------|
|
|
1361
1383
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1362
1384
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1363
|
-
| 湘易办 -
|
|
1385
|
+
| 湘易办 - webview | `否` | -- |
|
|
1364
1386
|
| 三方小程序 | `否` | -- |
|
|
1365
1387
|
|
|
1366
1388
|
* 示例-`promise`
|
|
@@ -1417,7 +1439,7 @@ try {
|
|
|
1417
1439
|
|----------------|:----:|:---------|
|
|
1418
1440
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1419
1441
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1420
|
-
| 湘易办 -
|
|
1442
|
+
| 湘易办 - webview | `否` | -- |
|
|
1421
1443
|
| 三方小程序 | `否` | -- |
|
|
1422
1444
|
|
|
1423
1445
|
* 示例-`request`
|
|
@@ -1463,7 +1485,7 @@ xybAgent.interceptor.response = (res) => {
|
|
|
1463
1485
|
|----------------|:----:|:---------|
|
|
1464
1486
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1465
1487
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1466
|
-
| 湘易办 -
|
|
1488
|
+
| 湘易办 - webview | `否` | -- |
|
|
1467
1489
|
| 三方小程序 | `否` | -- |
|
|
1468
1490
|
|
|
1469
1491
|
* 示例-`baseURL`
|
|
@@ -1491,7 +1513,7 @@ xybAgent.defaults.headers = {
|
|
|
1491
1513
|
|----------------|:----:|:---------|
|
|
1492
1514
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1493
1515
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1494
|
-
| 湘易办 -
|
|
1516
|
+
| 湘易办 - webview | `否` | -- |
|
|
1495
1517
|
| 三方小程序 | `否` | -- |
|
|
1496
1518
|
|
|
1497
1519
|
* 入参
|
|
@@ -1546,7 +1568,7 @@ this.$xybAgent.openWechatMiniApp({
|
|
|
1546
1568
|
|----------------|:----:|:---------|
|
|
1547
1569
|
| 湘易办小程序 | `是` | `1.1.4` |
|
|
1548
1570
|
| 湘易办小程序-webview | `是` | `1.1.8` |
|
|
1549
|
-
| 湘易办 -
|
|
1571
|
+
| 湘易办 - webview | `否` | -- |
|
|
1550
1572
|
| 三方小程序 | `否` | -- |
|
|
1551
1573
|
|
|
1552
1574
|
* 入参
|
|
@@ -1592,7 +1614,7 @@ this.$xybAgent.openAlipayMiniApp('/pages/index/index').then(({isSuccess, code})
|
|
|
1592
1614
|
|----------------|:----:|:---------|
|
|
1593
1615
|
| 湘易办小程序 | `是` | `2.0.0` |
|
|
1594
1616
|
| 湘易办小程序-webview | `是` | `2.0.0` |
|
|
1595
|
-
| 湘易办 -
|
|
1617
|
+
| 湘易办 - webview | `是` | `2.0.0` |
|
|
1596
1618
|
| 三方小程序 | `否` | -- |
|
|
1597
1619
|
|
|
1598
1620
|
* 入参
|
|
@@ -1629,7 +1651,7 @@ this.$xybAgent.startNavigation({
|
|
|
1629
1651
|
|----------------|:----:|:---------|
|
|
1630
1652
|
| 湘易办小程序 | `是` | `2.0.9` |
|
|
1631
1653
|
| 湘易办小程序-webview | `是` | `2.0.9` |
|
|
1632
|
-
| 湘易办 -
|
|
1654
|
+
| 湘易办 - webview | `否` | -- |
|
|
1633
1655
|
| 三方小程序 | `否` | -- |
|
|
1634
1656
|
|
|
1635
1657
|
* 入参
|
|
@@ -1666,7 +1688,7 @@ xybAgent.autoUpdate = false;
|
|
|
1666
1688
|
|----------------|:----:|:---------|
|
|
1667
1689
|
| 湘易办小程序 | `是` | `2.0.9` |
|
|
1668
1690
|
| 湘易办小程序-webview | `是` | `2.0.9` |
|
|
1669
|
-
| 湘易办 -
|
|
1691
|
+
| 湘易办 - webview | `否` | -- |
|
|
1670
1692
|
| 三方小程序 | `否` | -- |
|
|
1671
1693
|
|
|
1672
1694
|
* 入参
|
|
@@ -1702,7 +1724,7 @@ xybAgent.autoConfigMenuBtn = false;
|
|
|
1702
1724
|
|----------------|:----:|:---------|
|
|
1703
1725
|
| 湘易办小程序 | `是` | `2.0.9` |
|
|
1704
1726
|
| 湘易办小程序-webview | `是` | `2.0.9` |
|
|
1705
|
-
| 湘易办 -
|
|
1727
|
+
| 湘易办 - webview | `否` | -- |
|
|
1706
1728
|
| 三方小程序 | `否` | -- |
|
|
1707
1729
|
|
|
1708
1730
|
* 入参
|
|
@@ -1762,7 +1784,7 @@ this.$xybAgent.addCalendarEvent({
|
|
|
1762
1784
|
|----------------|:----:|:---------|
|
|
1763
1785
|
| 湘易办小程序 | `是` | `2.0.9` |
|
|
1764
1786
|
| 湘易办小程序-webview | `是` | `2.0.9` |
|
|
1765
|
-
| 湘易办 -
|
|
1787
|
+
| 湘易办 - webview | `否` | -- |
|
|
1766
1788
|
| 三方小程序 | `否` | -- |
|
|
1767
1789
|
|
|
1768
1790
|
* 入参
|
|
@@ -1818,7 +1840,7 @@ this.$xybAgent.addCalendarEvent({
|
|
|
1818
1840
|
|----------------|:----:|:---------|
|
|
1819
1841
|
| 湘易办小程序 | `是` | `2.0.9` |
|
|
1820
1842
|
| 湘易办小程序-webview | `是` | `2.0.9` |
|
|
1821
|
-
| 湘易办 -
|
|
1843
|
+
| 湘易办 - webview | `否` | -- |
|
|
1822
1844
|
| 三方小程序 | `否` | -- |
|
|
1823
1845
|
|
|
1824
1846
|
* 入参
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=(e="",t="",i="log",n="")=>{const o={error:"错误",warn:"警告",info:"提示",log:"日志"}[i]||"日志",a=JSON.stringify(n);console.log(`\n=============🚀START - V${F} 🚀=============\n【事件名称】:${e} \n【日志类型】:${o} \n【日志信息】:${t} ${"error"===i?`【错误信息】:${JSON.stringify(a)}`:""} \n==============🚀END🚀==============`),console.log("")},t=(t={})=>{if("function"==typeof t)return e("deepClone","数据类型为function,无法执行深拷贝,请检查","error"),t;try{return JSON.parse(JSON.stringify(t))}catch(i){return e("deepClone","执行数据深拷贝异常","error",i),t}},i=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}),n=(e={},t={})=>{for(let i in e)t[i]=e[i]},o=(t=!1)=>{let i={route:null,path:null,options:{}};try{const e="function"==typeof getCurrentPages?getCurrentPages():[],n=[];for(let t in e)n.push({route:e[t].route,path:e[t].$page?.fullPath,options:e[t].$page?.options});const o=n?.length||0;if(o){const e=n[o-1],a=n[o-2];i=(t?a:e)||{}}}catch(t){e("getCurrentPagePath","获取页面信息失败","error",t)}return i},a=e=>{try{return JSON.parse(e)}catch(t){return e}},s=(t={},i={})=>{let n=i;try{n=a(i)}catch(t){e("formatResponseData","格式化失败","error",t),n=i}t(n)},r=e=>null==e,c=(e="",t="")=>{let i=t||window?.location?.href;if(i=decodeURIComponent(i),i?.includes(e)){let t=i.split(`${e}=`)[1];return t?.includes("&")&&(t=t.split("&")[0]),t}return""},l=(e="",t="")=>{if(e)return new Promise(t=>{const i=document.createElement("script");i.src=e,i.onload=t,document.head.appendChild(i)})},u=(t,i)=>{window?.my?.navigateTo({url:t,fail:t=>{e("openAlipayMiniApp","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})},d=(t,i)=>{window?.wx?.miniProgram?.navigateTo({url:t,fail:t=>{e("executeAuthFaceInBrowser","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})};let m={finished:!1,result:!1},g={finished:!1,result:!1},h={finished:!1,result:!1},v={finished:!1,result:!1};const p=()=>w()?navigator.userAgent.toLowerCase():"",f=()=>{const e=p();return/android/i.test(e)?"android":/iphone|ipad|ipod|mac/i.test(e)&&!window.MSStream?"ios":/windows phone/i.test(e)?"windows":"harmony"},w=()=>window&&document,y=()=>{if(v.finished)return v.result;if(v.finished=!0,!w())return v.result=!1,!1;const t=p();return v.result=t.includes("uni-app"),e("checkIsMiniAppBrowserEnv",`当前是否为小程序的浏览器环境:${v.result}`),v.result},N=()=>{const{finished:t,result:i}=m;return t?i:(m.result=(()=>{if(h.finished)return h.result;if(h.finished=!0,!w())return h.result=!1,!1;const t=p();return h.result=t.includes("xybwebcomponent")||t.includes("uni-app"),e("checkIsXybBrowserEnv",`当前是否为湘易办浏览器环境:${h.result}`),h.result})()||y(),m.finished=!0,e("checkIsWebviewEnv",`当前是否为Webview环境:${m.result}`),m.result)},S=()=>{const{finished:t,result:i}=g;if(t)return i;if(g.finished=!0,!w())return g.result=!1,!1;const n=p();return g.result=n.includes("xybwebcomponent")&&!n.includes("uniminiapp"),e("checkIsAppWebviewEnv",`当前是否为APP的Webview环境:${g.result}`),g.result},C=()=>w()?p().includes("micromessenger"):"mp-weixin"===f(),I=()=>w()?p().includes("alipay"):"mp-alipay"===f(),E=()=>!!uni&&(!!uni.sendNativeEvent&&("function"==typeof uni.sendNativeEvent||"undefined"!=typeof uni&&Object.prototype.hasOwnProperty.call(uni,"sendNativeEvent"))),M=()=>window?.uni&&"function"==typeof window?.uni?.webView?.postMessage,$=()=>"function"==typeof window?.wx?.chooseImage,A=()=>"function"===Boolean(window?.my)?.chooseImage,b=(e,t)=>{let i=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(t*PI)+40*Math.sin(t/3*PI))/3,i+=2*(160*Math.sin(t/12*PI)+320*Math.sin(t*PI/30))/3,i},D=(e,t)=>{let i=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(e*PI)+40*Math.sin(e/3*PI))/3,i+=2*(150*Math.sin(e/12*PI)+300*Math.sin(e/30*PI))/3,i},x=(t,i)=>{const n=52.35987755982988,o=t-.0065,a=i-.006,s=Math.sqrt(o*o+a*a)-2e-5*Math.sin(a*n),r=Math.atan2(a,o)-3e-6*Math.cos(o*n),c=s*Math.cos(r).toFixed(6),l=s*Math.sin(r).toFixed(6);return e("BaiduToGCJ02",`已完成百度坐标系转换成国测坐标系的转换,转换后的值:lng:${c}, lat:${l}`),{lng:c,lat:l}},P=t=>{const{dinateType:i,lat:n,lng:o,address:a}=t;return e("replaceCoordinate",`坐标转换开始:${i}`,"log"),x(t)},k=[{isCustomEv:!0,eventName:"authFace",uniEvName:"Auth_face",description:"人脸识别功能",nativeEvName:"faceAuth",reqDataFormat:t=>{e("authFace",`执行人脸验证,参数信息:${JSON.stringify(t)}`);const{name:i,certNo:n,appId:o,sign:a,created:s,nonce:r}=t;return i&&n&&o&&a&&s&&r?t:(e("authFace","缺少必要参数:name, certNo, appId, sign, created, nonce","error","缺少必要参数"),!1)},resDataFormat:e=>({isSuccess:Boolean(e),certifyId:e}),resErrorFormat:e=>"harmony"===f().toLowerCase()?{isSuccess:!1,errorMsg:e}:e},{isCustomEv:!0,eventName:"startNavigation",uniEvName:"Start_navigation",description:"目的地导航",nativeEvName:"start_navigation",reqDataFormat:t=>{let i={};const{dinateType:n,lat:o,lng:a,address:s,destinationLatitude:r,destinationLongitude:c}=t;return r&&c?t:(e("replaceCoordinate",`坐标系值:LAT:${o},LNG:${a}`,"log"),i=n&&"GCJ02"!==n?P(t):{destinationLatitude:o,destinationLongitude:a,destinationName:s},e("replaceCoordinate",`转换后值:LAT:${i.destinationLatitude},LNG:${i.destinationLongitude}`,"log"),i)}},{isWindowEv:!0,eventName:"getLoginStatus",uniEvName:"Auth_checkLogin",description:"获取登录状态",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>{const i=t(e);return{logined:1===Number(i?.isLogin)}},resErrorFormat:()=>({logined:!1})},{isWindowEv:!0,eventName:"getLoginUserInfo",uniEvName:"Auth_getUserInfo",description:"获取登录用户数据信息",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>t(e),resErrorFormat:()=>({isSuccess:!1})},{isCustomEv:!0,eventName:"getAuthToken",uniEvName:"Auth_getToken",description:"获取授权token",nativeEvName:"get_token",resDataFormat:e=>{try{const i=t(e);return{token:i?.token,isSuccess:Boolean(i?.token)}}catch(t){return{token:e?.token,isSuccess:Boolean(e?.token)}}},resErrorFormat:()=>({isSuccess:!1})},{isWindowEv:!0,eventName:"getAccessLink",uniEvName:"Auth_getAccessLink",nativeEvName:"CallNativeMethodGetAccessLink",description:"获取授权链接",resDataFormat:e=>"ios"===f().toLowerCase()?{isSuccess:!0,accessLink:e}:t(e),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"image",eventName:"chooseImg",uniEvName:"Image_choose",nativeEvName:"chooseImage",browserEvName:"chooseImage",description:"选择本地图片",reqDataFormat:e=>{const{count:t,sizeType:i,sourceType:n,isCircleCrop:o}=e||{};return{count:t||9,sizeType:i||["original","compressed"],sourceType:n||["album"],isCircleCrop:o||!1}},resDataFormat:e=>t(e),bResDataFormat:e=>{const{tempFiles:t}=e,i=[];for(let e in t){const{name:n,path:o,size:a,type:s}=t[e];i.push({name:n,path:o,size:a,type:s})}return{resultObj:i,isSuccess:!0,message:"选择图片功能操作完成"}}},{moduleName:"image",eventName:"imgPreview",uniEvName:"Image_preview",nativeEvName:"previewImage",browserEvName:"previewImage",description:"执行图片预览"},{moduleName:"image",eventName:"imgUpload",uniEvName:"Image_upload",nativeEvName:"uploadImage",description:"执行图片上传",resDataFormat:e=>t(e),resErrorFormat:e=>e},{eventName:"imgDownload",uniEvName:"Image_download",nativeEvName:"",browserEvName:"downloadImage",description:"执行图片下载"},{eventName:"fileUpload",uniEvName:"File_upload",nativeEvName:"",description:"执行文件上传"},{moduleName:"file",eventName:"fileDownload",uniEvName:"File_download",nativeEvName:"downloadFile",description:"执行文件下载",resDataFormat:e=>({isSuccess:Boolean(e),resultObj:{path:e}})},{moduleName:"file",eventName:"filePreview",uniEvName:"File_preview",nativeEvName:"previewFile",description:"执行文件预览"},{moduleName:"file",eventName:"openLocalFile",uniEvName:"File_openLocal",nativeEvName:"openLocalFile",description:"执行打开本地文件"},{moduleName:"file",eventName:"chooseLocalFile",uniEvName:"File_chooseLocal",nativeEvName:"chooseLocalFile",browserEvName:"chooseFile",description:"选择本地文件",resDataFormat:e=>t(e)},{moduleName:"file",eventName:"openThirdFile",uniEvName:"File_openThirdParty",nativeEvName:"openFileWithThirdParty",description:"执行打开第三方文件"},{eventName:"openApp",uniEvName:"Util_openApp",nativeEvName:"",description:"打开APP"},{isCustomEv:!0,eventName:"openXybApp",uniEvName:"Util_openXYBMiniApp",nativeEvName:"jumpToMiniApp",description:"打开湘易办融合APP小程序",reqDataFormat:e=>{if(S()){const{pageUrl:t}=e;return{...e,path:t}}return e}},{eventName:"postMsgToOtherApp",uniEvName:"Util_postMessageToXYBMiniApp",nativeEvName:"",description:"发送消息给其他小程序"},{isWindowEv:!0,eventName:"scanCode",uniEvName:"Scan_code",description:"扫描二维码",browserEvName:"scanQRCode",nativeEvName:"CallNativeMethodScanQRCode",resDataFormat:e=>({text:e}),bReqDataFormat:e=>({...e,needResult:1}),bResDataFormat:e=>({text:e?.resultStr||""})},{moduleName:"system",eventName:"getAppInfo",nativeEvName:"getAppInfo",description:"获取应用信息",uniEvName:"System_getAppInfo",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"copyToClipboard",uniEvName:"Util_clipboardData",nativeEvName:"clipboardData",description:"复制内容到剪切板",reqDataFormat:e=>({text:e}),resDataFormat:e=>S()?{isSuccess:Boolean(e)}:{isSuccess:!0}},{moduleName:"util",eventName:"getCacheSize",uniEvName:"Util_getCacheSize",nativeEvName:"getCacheSize",description:"获取缓存大小",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"clearCache",uniEvName:"Util_clearCache",nativeEvName:"clearCache",description:"执行缓存清除",resDataFormat:()=>({isSuccess:!0}),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"telephone",eventName:"callPhone",uniEvName:"Util_callDesignateNumber",nativeEvName:"call",description:"拨打电话",browserEvName:"makePhoneCall",reqDataFormat:e=>"object"==typeof a(e)?a(e):S()?{phoneCode:"+86",phoneNumber:String(e).replace("+86","")}:{text:e}},{eventName:"forbidScreenShot",uniEvName:"Util_forbidScreenShot",nativeEvName:"",description:"执行禁止截屏"},{eventName:"setScreenLight",uniEvName:"Util_setScreenLight",nativeEvName:"",description:"设置屏幕是否常亮",reqDataFormat:e=>({idleTimerValue:e})},{eventName:"sendMatterId",uniEvName:"Param_MatterID",nativeEvName:"",description:"执行页面事件ID上报",reqDataFormat:e=>({matterID:e})},{isWindowEv:!0,description:"获取位置信息",eventName:"getLocationInfo",uniEvName:"Util_getLocationInformation",nativeEvName:"CallNativeMethodGetLocationInformation",resDataFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),f().toLowerCase(),{isSuccess:!0,location:o}},nativeResFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),{isSuccess:!0,location:o}},resErrorFormat:()=>({isSuccess:!1,location:{}})},{eventName:"checkPermission",uniEvName:"Auth_matterHandleAuthority",nativeEvName:"",description:"检查事项权限",reqDataFormat:e=>({matterCode:e})},{eventName:"showComment",uniEvName:"Util_jumpToComment",nativeEvName:"",description:"打开评价弹窗"},{isWindowEv:!0,description:"打开微信小程序",eventName:"openWechatMiniApp",uniEvName:"Util_openWechatMiniProgram",nativeEvName:"CallNativeMethodJumpToWechatMiniProgram",reqDataFormat:e=>{if(S()){const t={};for(let i in e)t[i]=String(e[i]);return JSON.stringify(t)}return e}},{isWindowEv:!0,description:"打开支付宝小程序",eventName:"openAliPayMiniApp",uniEvName:"Util_openAlipayMiniProgram",nativeEvName:"CallNativeMethodJumpToAliPay",reqDataFormat:e=>S()?JSON.stringify(e):e},{eventName:"showMenuPanel",uniEvName:"menu_present",nativeEvName:"",description:"显示菜单面板"},{isCustomEv:!0,eventName:"addCalendarEvent",uniEvName:"Util_addCalendarEvent",nativeEvName:"addCalendarEvent",description:"添加日历日程"},{isCustomEv:!0,eventName:"deleteCalendarEvent",uniEvName:"Util_deleteCalendarEvent",nativeEvName:"deleteCalendarEvent",description:"删除日历日程"},{isCustomEv:!0,eventName:"queryCalendarEvent",uniEvName:"Util_queryCalendarEvent",nativeEvName:"queryCalendarEvent",description:"查询日历日程"}],F="0.0.23",O="https://xybfw.zwfw.hunan.gov.cn/gateway3",L={custom(t,i){e("custom",`通过custom调用${t}事件`);const n=k?.find(e=>e?.nativeEvName===t||e?.eventName===t);return new Promise((e,o)=>{const{reqDataFormat:a}=n||null,s=n||{isCustomEv:!0,moduleName:"custom",eventName:"call",description:"通过Custom调用的C2事件",nativeEvName:t};if(!S())return void e({code:-1,msg:"非APP环境的Webview环境,不支持该功能"});const r=a?a(i):i;this.executeSendMsgToApp({moduleName:"custom",eventName:"call",actionName:t,isCustomEv:!0,dataInfo:r,resolveInfo:e,evConfig:s})})}},T=e=>Number(e)>9?e:`0${e}`,B=()=>{const e=new Date;return`${e.getFullYear()}-${T(e.getMonth()+1)}-${T(e.getDate())} ${T(e.getHours())}:${T(e.getMinutes())}:${T(e.getSeconds())}`},J={trackStack:[],anaSDKLoadTimes:0,locationInfo:{},isProdEnv:!1,track(t="",n={}){if(t){if(n)return w()&&!this.anaSDKInit?(this.trackStack.push({id:i(),eventID:t,eventPro:n}),void e("track","埋点上报插件初始化未完成,本次数据在插件初始化后自动上报","log")):void this.executeTrack(t,n);e("track","埋点数据上报失败","error","请传入埋点数据")}else e("track","埋点数据上报失败","error","请传入埋点事件")},async executeTrack(t="",i={}){if("object"==typeof t)return void await this.track(t?.eventID,t?.eventPro);const n=await this.initTrackParams(i);if(e("track",`执行埋点数据上报,事件名称:${t},事项编码:${n.code},是否上报到生产环境:${this.isProdEnv},完整埋点数据:${JSON.stringify(n)}`,"log"),w()&&xybAgent?.AnalysysAgent)return e("track","通过浏览器插件执行埋点数据上报","log"),void window.xybAgent.AnalysysAgent.track(t,n);if(E())try{e("track",`埋点数据:${JSON.stringify(n)},埋点ID:${t}`,"log"),uni.sendNativeEvent("Analysis_common",{eventID:t,eventPro:n})}catch(t){e("track","执行数据埋点功能异常","error",t)}},trackSDKInit(t){return new Promise((i,n)=>{w()||(e("initTrack","非浏览器环境无需使用init执行初","error"),i(!0)),this.anaSDKInsert?this.configAnaSDK(t,i):l("https://mobile.zwfw.hunan.gov.cn:8088/AnalysysAgent_JS_SDK.min.js","极光").then(()=>{window.AnalysysAgent&&(xybAgent.AnalysysAgent=window.AnalysysAgent,this.anaSDKInsert=!0,this.configAnaSDK(t,i))})})},configAnaSDK(t,i){const n="800c298f0c42c94c",o="40d556c15f872084";let a=location?.host?.includes("hunan.gov.cn")?n:o;if("object"==typeof t)a=o;else{const e={production:n,development:o},i=[n,o];(e[t]||i.includes(t))&&(a=e[t]?e[t]:t)}this.isProdEnv=a===n,e("configAnaSDK",`配置信息:${JSON.stringify(t)},是否为生产环境:${this.isProdEnv},上报的key值:${a}`),w()?(window.xybAgent.AnalysysAgent&&(window.xybAgent.AnalysysAgent.init({appkey:a,uploadURL:"https://mobile.zwfw.hunan.gov.cn:8088/aurora-api"}),e("configAnaSDK","xybAgent已初始化完成,可正常执行埋点操作","log"),this.anaSDKInit=!0,this.isInit=!0,this.checkTrackStack(),i(!0)),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes<10&&setTimeout(()=>this.trackSDKInit(i),300),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes>=10&&(e("configAnaSDK","xybAgent初始化失败","error","请检查app key、uploadURL是否正确"),i(!1))):i(!1)},async initTrackParams(e={}){const{code:t,name:i,aff_city_code:n,aff_city_name:o,unit_code:a,area_code:s,unit_name:r,is_finish:c,category:l,user_id:u,miniAppCode:d,$url_domain:m}=e,g=this.getVisitSource(),h=this.getPageSource(),v=await this.getPositionInfo();return{code:t||void 0,name:i||void 0,aff_city_code:n||void 0,aff_city_name:o||void 0,unit_code:a||void 0,area_code:s||void 0,unit_name:r||void 0,is_finish:c||void 0,category:l||void 0,user_id:u||void 0,miniAppCode:d||void 0,$url_domain:m||void 0,curr_time:B(),source:g,page_source:h,location:v}},getVisitSource(){if(!w()){const e=uni?.getSystemInfoSync(),{uniPlatform:t}=e||{};return"mp-weixin"===t?"wx":"mp-alipay"===t?"alipay":"app"}return C()?"wx":I()?"alipay":"app"},checkTrackStack(){e("checkTrackStack","执行埋点数据堆栈检测","log");t(this.trackStack).forEach(t=>{const{eventID:i,eventPro:n,id:o}=t;e("checkTrackStack",`执行id值为${o} 的埋点数据再次上报`,"log"),this.track(i,n);const a=this.trackStack.findIndex(e=>e.id===o);a>-1&&this.trackStack.splice(a,1)})},getPageSource(){let e=null;e=w()?location.href:decodeURIComponent(o().path);const t=e?.includes("source=");if(!t)return"click";const i=e.split("source=")[1];let n="click";return n=i.includes("&")?i.split("&")[0]:i,["copy","share","click","search"].includes(n)?n:"click"},async getPositionInfo(){if(!this.locationInfo?.province)try{const{location:e}=await this.getLocationInfo()||{};this.locationInfo=e||""}catch(t){e("getLocationInfo","获取位置信息异常","error",t),this.locationInfo={}}return JSON.stringify(this.locationInfo)}},W={initMobileBridgeGlobalConfig(){const t=f();e("initMobileBridgeGlobalConfig",`开始初始化移动端桥链接配置,访问设备类型:${t}`),window.c2={},"ios"===t&&this.initIOSCallbackEvConfig(),"android"===t&&this.initAndroidCallbackEvConfig(),e("initMobileBridgeGlobalConfig","初始化移动端桥链接配置完成"),window.CreatorJsBridge=window.c2},initIOSCallbackEvConfig(){try{const t=this;window.c2.iOS={},window.c2.iOS.callJS=function(){window?.c2.iOS?.callJSCallback||(window.c2.iOS.callJSCallback={}),e("initIOSCallbackEvConfig",`开始处理IOS设备回调事件,回调数据:${JSON.stringify(arguments)}`),t.IOSCallbackEvFormat(arguments[0])}}catch(t){e("initIOSCallbackEvConfig","初始化IOS回调事件配置异常","error",t)}},initAndroidCallbackEvConfig(){window.c2.sendDataWarpToWeb=(e,t,i)=>{e(i)}},IOSCallbackEvFormat(i){const{returnValue:n,funcName:o}=i;let s=this.base64Decode(n);s=a(s),e("IOSCallbackEvFormat",`IOS设备回调事件处理开始,回调数据:${JSON.stringify(s)}, 格式:${typeof s}`);const r=o.split("_a")[0],c=o.replace(r,""),l=this.iosCallBackList.find(e=>e.id===r);if(!l)return;const{resolveInfo:u,configInfo:d}=l,{resDataFormat:m,resErrorFormat:g}=d;if(c.includes("onFail")&&g)return s=g({isSuccess:!1,errorMsg:t(n)}),void u(s);m&&(s=m(s)),e("IOSCallbackEvFormat",`IOS设备回调事件处理完成,返回数据:${JSON.stringify(s)}`),u(s);const h=this.iosCallBackList.findIndex(e=>e.id===r);this.iosCallBackList.splice(h,1)},base64Decode(e){let t,i,n,o,a,s,r,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u<e.length;)o=c.indexOf(e.charAt(u++)),a=c.indexOf(e.charAt(u++)),s=c.indexOf(e.charAt(u++)),r=c.indexOf(e.charAt(u++)),t=o<<2|a>>4,i=(15&a)<<4|s>>2,n=(3&s)<<6|r,l+=String.fromCharCode(t),64!=s&&(l+=String.fromCharCode(i)),64!=r&&(l+=String.fromCharCode(n));return l=this._utf8_decode(l),l},_utf8_decode(e){let t="",i=0,n=0,o=0,a=0;for(;i<e.length;)n=e.charCodeAt(i),n<128?(t+=String.fromCharCode(n),i++):n>191&&n<224?(a=e.charCodeAt(i+1),t+=String.fromCharCode((31&n)<<6|63&a),i+=2):(a=e.charCodeAt(i+1),o=e.charCodeAt(i+2),t+=String.fromCharCode((15&n)<<12|(63&a)<<6|63&o),i+=3);return t},checkMobileModuleBack(e,t,i){const n=i?"custom":e,o=`${i?"call":t}Callback`;window.c2.hasOwnProperty(n)||(window.c2[n]={}),window.c2[n].hasOwnProperty(o)||(window.c2[n][o]={})}};let _=null,q=null,H=null;E()?(_=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-RUM"):null,q=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-Tracer"):null,H=uni&&uni?.getSystemInfoSync?uni.getSystemInfoSync().platform:null):e("请求插件初始化","未找到uni对象","warn");const K={defaults:{headers:{},baseURL:""},interceptor:{request:null,response:null},requestOb:!1,request(i={}){return new Promise((n,o)=>{let a=t(i);if(!this.interceptor.request||"function"!=typeof this.interceptor.request||i.ignore||(a=this.interceptor.request(i),a))if(E()&&this.requestOb&&Boolean(_)&&Boolean(q))try{e("request","走服务监控平台的请求配置","log"),this.executeCloudObRequest(a,n,o)}catch(t){e("request","走服务监控平台的请求配置失败","error",t)}else e("request","走uni的请求配置","log"),this.executeNormalRequest(a,n,o);else n(!1)})},executeCloudObRequest(t,n,o){let a=i();const s=this.checkCloudObRequestHeader(t,a);if(!s)return;const{traceHeader:c,filter:l}=s;let u,d,m;_.startResource({key:a}),uni.request({url:`${this.defaults.baseURL}${t.url}`,method:t.method,header:c,data:t.data,timeout:t.timeout,withCredentials:t?.withCredentials||void 0,success:i=>{if(e("executeCloudObRequest",`接口:${t.url},请求成功`,"log"),l||(u=i.header,d=i.data.toString(),m=i.statusCode),r(t.success)||t.success(i),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(i);return void n(e)}n(i)},fail:i=>{e("executeCloudObRequest",`接口:${t.url},请求失败`,"error",i),l||(d=i?.errMsg),r(t?.fail)||t.fail(i),o(i)},complete:()=>{if(e("executeCloudObRequest",`接口:${t.url},请求完成`,"log"),!l){e("executeCloudObRequest",`无filter配置的数据信息::::key值:${a};URL地址:${t.url};`),_.stopResource({key:a});const i={url:`${this.defaults.baseURL}${t.url}`,httpMethod:t.method,requestHeader:c,responseHeader:u,responseBody:d,resourceStatus:m};_.addResource({key:a,content:i})}Boolean(t?.complete)&&t?.complete()}})},checkCloudObRequestHeader(t,i){let n;r(t?.filterPlatform)?(e("executeCloudObRequest",`options.filterPlatform:${t.filterPlatform}`,"log"),n=!1):(n=t?.filterPlatform?.includes(H),e("executeCloudObRequest",`platform:${t.filterPlatform}`,"log")),e("executeCloudObRequest",`rum:${_},tracer:${q}`,"log");let o={};return n||(o=q?.getTraceHeader({key:i,url:t.url})),e("executeCloudObRequest",`是否读取到【tracer】插件配置:${Boolean(q)},是否读取到【rum】插件配置:${Boolean(_)}`,"log"),_&&q?(o=Object.assign({},o,t.header),o=Object.assign({},o,this.defaults.headers),{traceHeader:o,filter:n}):(e("executeCloudObRequest","请配置服务监控平台原生插件","log"),!1)},executeNormalRequest(t,i,n){const{url:o,header:a,data:s,method:r}=t||{},c=Object.assign({},this.defaults.headers,a);uni.request({url:`${this.defaults.baseURL}${o}`,header:c,data:s,method:r,withCredentials:t?.withCredentials||void 0,success:n=>{if(e("normalRequest",`接口:${o},请求成功`,"log"),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(n);return void i(e)}i(n)},fail:t=>{e("normalRequest",`接口:${o},请求异常`,"error",t),n(t)}})}},R={resetMenuBtnConfig(){e("hideNativeBtn","隐藏原生APP分享、评价按钮","log");const t={share:{show:!1},comment:{show:!1},favorite:{show:!0}};try{this.menuBtnConfig(t),this.pageChangeEv(i=>{if(!this.autoUpdate)return void e("resetMenuBtnConfig","业务侧设置不自动重置胶囊按钮,中断配置动作");const{options:n}=i,{xybModuleCode:o}=n||{};if(o&&this.autoConfigMenuBtn)return e("resetMenuBtnConfig",`页面拦截事件生效 自动设置原生APP分享、评价按钮,配置信息:${JSON.stringify(i)}`,"log"),void this.menuBtnConfig({share:{show:!0,code:o,type:4},comment:{show:!0,code:o,type:4},favorite:{show:!0}});e("resetMenuBtnConfig","页面拦截事件生效 自动重置原生APP分享、评价按钮配置信息","log"),this.menuBtnConfig(t)})}catch(t){e("resetMenuBtnConfig","配置APP的胶囊按钮清单显示失败,请检查参数是否正确","error",t)}},pageChangeEv(t){if(!uni)return;["navigateTo","redirectTo","switchTab","reLaunch","navigateBack","onBackPress"].forEach(i=>{try{uni.addInterceptor(i,{invoke(n){try{const{url:a}=n;let s={options:{},path:null,route:null},r=decodeURIComponent(a);s.path=r,s.route=r.split("?")[0],r?.includes("xybModuleCode=")&&(console.log(`🚀当前页面路径信息:${r}`),s.options.xybModuleCode=c("xybModuleCode",r)),r?.includes("?")&&(s.route=r.split("?")[0]),i?.includes("Back")&&(s=o(i?.includes("Back"))),e("pageChangeEv",`页面路径发生了变化,当前页面路径:${s.path}`,"log"),"function"==typeof t&&t(s)}catch(t){console.log("🚀 错误信息:::::",t),e("pageChangeEv","拦截路径变化时发生了异常","error",t)}return!0}})}catch(t){e("pageChangeEv","执行页面变化拦截异常","error",t)}})},menuBtnConfig(t={}){e("menuBtnConfig",`配置APP胶囊按钮清单显示,配置信息:${JSON.stringify(t)}`,"log");let i=!0;for(let n in t){if("object"!=typeof t[n]){i=!1,e("menuBtnConfig","配置参数错误","error","请传入一个Object配置数据");break}}if(i)if(N())this.miniAppH5SendMsgToApp(null,"menuBtnConfig",t,"配置APP的胶囊按钮清单显示");else if(!w()&&uni&&uni?.sendNativeEvent)try{e("menuBtnConfig","开始执行配置APP胶囊按钮清单显示","log"),uni?.sendNativeEvent("Util_MiniAppConfigMenu",t)}catch(t){e("menuBtnConfig","配置APP的胶囊按钮清单显示时发生异常","error",t)}else e("menuBtnConfig","配置APP胶囊按钮清单显示功能无法在非UNI环境运行","log")}},U={executeBrowserEvent(t,i={},n={},o={}){const a=C()?"微信小程序":I()?"支付宝小程序":"浏览器",{eventName:s,description:r,browserEvName:c,bResDataFormat:l,bReqDataFormat:u,reqDataFormat:d}=o,m="startNavigation"===s?n:i;e("normalEvDataTransition",`开始调用${a}嵌套H5的能力,事件名称:${s},入参:${JSON.stringify(m)},配置信息:${JSON.stringify(o)}`);const g={authFace:"executeAuthFaceInBrowser",getLocationInfo:"executeGetLocationInBrowser",startNavigation:"startNavigationInBrowser",fileUpload:"executeFileUploadInBrowser",chooseImg:"executeImageChooseInBrowser"}[s];if(g)return void this[g](t,m,o);if(!c)return void t({isSuccess:!1,code:-1,message:`非常抱歉,${r}功能无法在当前环境中使用`});const h=d?d(i):u?u(i):i;I()||C()?this.executeMPBrowserEvent(t,c,i,s):this.executeNativeBrowserEv(t,c,h,l)},executeMPBrowserEvent(i,n,o,a){e("executeMPBrowserEvent",`配置信息:${JSON.stringify(o)}`);let s=t(o);e("executeMPBrowserEvent",`配置信息:${JSON.stringify(s)}`),s.success=t=>{e("executeMPBrowserEvent",`执行:${a}事件完成,返回结果:${JSON.stringify(t)}`)},s.fail=t=>{e("executeMPBrowserEvent",`执行:${a}事件失败,错误信息:${JSON.stringify(t)}`)},e("executeWeChatBrowserEv",`${a},配置信息:${JSON.stringify(s)}`),C()?window.wx[n](s):window.my[n](s)},executeNativeBrowserEv(e,i){let n=t(i);n.success=function(e){console.log(e)},n.fail=function(e){console.error(e)},window.uni[e](n)}},G={executeAuthFaceInBrowser(t,i={},n={}){const o=function(i){let n=c("faceKey",window?.location?.href);if(e("executeAuthFaceInBrowser",`获取到的faceKey参数值::::${n}`),!window?.location?.href.includes("faceKey"))return;const a={isSuccess:Boolean(n),certifyId:`MINI_${n}`,portrait:null,errorMsg:Boolean(n)?null:"人脸验证失败,请检查参数信息"};window.removeEventListener("hashchange",o),setTimeout(()=>{e("executeAuthFaceInBrowser",`执行验证结果回抛给业务侧:${JSON.stringify(a)}`),t(a)},100)};window.addEventListener("hashchange",o);const a=encodeURIComponent(window.location.href),{certNo:s,name:r}=i;let l=`/pages/sdk/sdk?redirectUrl=${a}&type=authFace&idCard=${encodeURIComponent(s)}&name=${r}`;C()?d(l,t):I()?u(l,t):(e("executeAuthFaceInBrowser","当前环境不支持人脸识别","warning"),t({isSuccess:!1,code:-1,message:"当前环境下不支持人脸识别验证功能"}))}},j={locationCheck:!1,locationEvList:[],checkLocationEvStation(){this.locationEvList.forEach(e=>{this.getLocationInWeChat(e.resolveInfo,e.id)})},executeGetLocationInBrowser(t){e("executeGetLocationInBrowser","在微信/支付宝浏览器中获取定位信息"),I()?this.getLocationInAliPay(t):C()?this.getLocationInWeChat(t):t({code:-1,isSuccess:!1,message:"当前环境无法支持位置信息获取,请检查是否为湘易办相关环境"})},getLocationInWeChat(t,n){return this.weChatConfigReady?this.locationCheck?(e("getLocationInWeChat","已缓存签名信息,直接调用对应API获取位置信息"),void this.executeGetLocationInfoData(t,n)):void this.executeGetLocationInfoData(t,n):(e("getLocationInWeChat","微信SDK尚未初始化完毕,先行进行堆栈,待微信SDK初始化后,统一调用"),void this.locationEvList.push({id:i(),resolveInfo:t}))},executeGetLocationInfoData(t,i){e("executeGetLocationInfoData","在微信环境中获取位置信息"),window?.wx?.getLocation({type:"wgs84",success:n=>{this.locationCheck=!0,e("executeGetLocationInfoData",`调用微信获取位置信息完成,结果是:${JSON.stringify(n)}`),this.executeGetDetailLocation(t,n,i)},fail:i=>{t({isSuccess:!1,message:"调用微信获取位置信息失败,请联系管理员"}),e("executeGetLocationInfoData",`调用微信获取位置信息失败,信息是:${JSON.stringify(i)}`)}})},executeGetDetailLocation(t,i,n){wx.request({url:`${O}/api/auth/baidumap/v1/reverse_geocoding?location=${i.latitude},${i?.longitude}`,method:"GET",success:i=>{const{data:o}=i?.data||{},a=this.formatLocationData(o);if(t(a),n){e("executeGetDetailLocation",`已成功获取到定位信息,清除该事件的堆栈:${n}`);const t=this.locationEvList.findIndex(e=>e.id===n);-1!==t&&this.locationEvList.splice(t,1)}},fail:t=>{e("executeGetDetailLocation","获取位置信息失败","error",JSON.stringify(t))}})},formatLocationData(t={}){const i=t?.result||{},{lng:n,lat:o}=i?.location||{},{cityCode:a,formatted_address:s}=i||{},{district:r,city:c,country:l,adCode:u,province:d}=i?.addressComponent||{},m=x(n,o),g={isSuccess:!0,location:{district:r,city:c,longitude:m?.lng,country:l,cityCode:a,adCode:u,address:s,latitude:m?.lat,province:d}};return e("executeGetDetailLocation",`获取位置信息调用完成,结果:${JSON.stringify(g)}`),g},getLocationInAliPay(t){window?.my?.getLocation({type:"wgs84",success:i=>{e("getLocationInAliPay",`支付宝下获取位置信息完成:::${JSON.stringify(i)}`),this.executeGetDetailLocation(t,i)},fail:i=>{e("getLocationInAliPay",`获取位置信息失败,错误信息:${JSON.stringify(i)}`,"error",i),t({isSuccess:!1,message:"获取位置信息失败,请联系湘易办相关技术人员"})}})}},z={executeImageChooseInBrowser(t,i,n){const{count:o,sizeType:a,sourceType:s}=i,{bResDataFormat:r}=n;if(C()||I()){const i={count:o||9,mediaType:["image"],sizeType:a||["original","compressed"],sourceType:s||["album"],success:i=>{i?.success&&t(r?r(i):i),e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行完毕,结果:${JSON.stringify(i)}`)},fail:t=>{e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行失败,结果:${JSON.stringify(t)}`)}};return void(I()?window.my.chooseImage(i):window.wx.chooseImage(i))}t({isSuccess:!1,code:-1,message:"目前环境暂不支持,敬请期待"})}},V={navigationCheck:!1,startNavigationInBrowser(t,i={}){const n=encodeURIComponent(window?.location?.href),{lat:o,lng:a,address:s,name:r,dinateType:c}=i;let l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${o}&longitude=${a}&address=${s}&name=${r}`;if(c&&"GCJ02"!==c){const e=P(i),{destinationLatitude:t,destinationLongitude:o}=e;l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${t}&longitude=${o}&address=${s}&name=${r}`}e("startNavigationInBrowser",`跳转目标URL:${l}`),C()?d(l,t):I()?u(l,t):(e("startNavigationInBrowser","导航功能无法在当前环境下执行"),t({isSuccess:!1,code:-1,message:"导航功能无法在当前环境下执行,请检查是否为微信/支付宝小程序的浏览器环境中"}))}},Q={wvInfo:null,isHarmony:!1,isCheckDevice:!1,async initMessage(...t){const i=t[0];await this.checkDeviceInfo(),await this.initVMInfo(t[2]),w()?window.addEventListener("message",t=>{e("initMessage",`浏览器webview接收到的消息内容,${JSON.stringify(t)}`,"log"),this.getMsgFromH5(t)}):(e("initMessage",`非浏览器中的webview接收到的消息内容,${JSON.stringify(i)}`,"log"),this.getMsgFromH5(i))},checkDeviceInfo(){this.isCheckDevice||(this.isCheckDevice=!0,uni.sendNativeEvent("System_getAppInfo",{},e=>{this.isHarmony=e?.platform?.toLowerCase().includes("harmony")}))},initVMInfo(t){if(!this.wvInfo)if(this.isHarmony)this.wvInfo=uni.createWebviewContext("webview",t);else try{this.wvInfo=t,t?.$scope?.$getAppWebview()&&(this.wvInfo=t.$scope.$getAppWebview().children()[0])}catch(t){e("initMessage","初始化消息模块,是否包含wvInfo:"+typeof this.wvInfo?.evalJS)}},getMsgFromH5(t={}){let i=this.getMsgDataFromH5(t);const{origin:n}=t||{},{href:o}=location||{};if(w()&&o?.includes(n))return!1;const{isH5Send:a,methodName:s,methodData:r}=i||{};return!!a&&(s?null==r?(e("getMsgFromH5","请传入需要执行的事件数据","warn"),!1):(e("getMsgFromH5",`需要执行的事件名称【${s}】,需要执行的事件数据【${JSON.stringify(r)}】,是否为H5发送的消息【${a}】`,"log"),void(this[s]?this.executeH5MethodName(s,i):e("getMsgFromH5",`【${s}】事件不存在`,"warn"))):(e("getMsgFromH5","请传入需要执行的事件名称","warn"),!1))},executeH5MethodName(t,i){const{msgId:n,methodData:o}=i;try{const i=this[t].toString();if(e("executeH5MethodName",`【${t}】方法定义:${i}`,"log"),i.includes("Promise"))return void this[t](o).then(i=>{e("executeH5MethodName",`${t}方法执行结果:${JSON.stringify(i)}`,"log");let o=i;try{o=JSON.parse(i)}catch(t){e("executeH5MethodName","强制给数据进行序列化失败","error",t)}this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:o,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}).catch(i=>{e("executeH5MethodName",`${t}方法执行失败`,"error",i),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法失败,具体错误信息,请查看控制台`})});this[t](o),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}catch(i){e("getMsgFromH5",`${t}方法执行失败`,"error",i)}},postMsgToH5(t){const i=JSON.stringify(t);if(e("postMsgToH5",`消息内容:${i}`,"log"),w()){e("postMsgToH5","父页面运行在浏览器","log");document.querySelector("iframe").contentWindow.postMessage(JSON.stringify(i),"*")}else try{e("postMsgToH5","父页面运行在非浏览器","log"),this.wvInfo.evalJS(`getMessageFromWebview('${i}')`)}catch(t){e("postMsgToH5","执行浏览器的webview回传异常","error",t)}},getMsgDataFromH5(t){let i=null;const{data:n}=t;try{i=w()?n?.data?.arg?n?.data?.arg:n?.data?n.data:n:t.detail?.data[0]}catch(t){return e("getMsgDataFromH5","处理消息内容时发生异常","error",t),!1}return e("getMsgDataFromH5",`获取到的消息内容:${JSON.stringify(i)}`,"log"),i}},X=(t,i,n)=>{if(e("_parseFunction",`${JSON.stringify(t)}`),"function"==typeof t)return n[i]=t,void(t="[Function]::"+i);if("object"!=typeof t)return;let o=null;for(let e in t)switch(typeof t[e]){case"object":o=i?i+"_"+e:e,X(t[e],o,n);break;case"function":o=i?i+"_"+e:e,n[o]=t[e],t[e]="[Function]::"+o}},Y=e=>{let t=0;return"string"==typeof e?t=1:"number"==typeof e?t=2:"boolean"==typeof e?t=3:"function"==typeof e?t=4:e instanceof Array?t=6:"object"==typeof e&&(t=5),t},Z={appH5SendMsgToApp(e,t={},i={}){const{isWindowEv:n,moduleName:o,nativeEvName:a,isCustomEv:s}=t;if(n)return void this.h5SendMsgToAppByWindow(e,t,i);const r=s?"custom":o,c=s?"call":a;this.executeSendMsgToApp({resolveInfo:e,moduleName:r,eventName:c,actionName:a,dataInfo:i,isCustomEv:s,evConfig:t})},executeSendMsgToApp(i={}){const{moduleName:n,eventName:o,actionName:a,dataInfo:s,resolveInfo:r,isCustomEv:c,evConfig:l}=i||{},{description:u}=l,d=this;try{let i={};if(("object"==typeof s?Object.keys(s):[]).length>0&&(i=t(s)),c){const n=t(i);e("webviewSendMsgToApp",`${u}功能在是通过custom.call的方式调用,需要重新处理入参`),i.params=n,i.action=a}e("webviewSendMsgToApp",`${u}的完整参数:${JSON.stringify(i)}`),this.initEventCallbackEv(r,i,l);const m=function(){return d.formatBridgeData(window.c2[n][`${o}Callback`],arguments)}(i);e("webviewSendMsgToApp",`${u}功能在${f()}的Webview环境下执行,调用参数:${JSON.stringify(m)}`),this.h5SendMsgToAppByBrowser(r,l,m)}catch(t){console.log(`🚀发送消息给APP出现错误,错误信息:${t},${JSON.stringify(t)}`),e("webviewSendMsgToApp",`${u}执行数据处理失败`,"error",t)}},initEventCallbackEv(i,n,o={}){const{description:a,resDataFormat:s,resErrorFormat:r}=o;n.onSuccess=function(t){e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行完成`),i(s?s(t):t)},n.onFail=function(n){const o=t(n);e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行失败,收到的回调数据:::${JSON.stringify(o)}`),i(r?r(o):s?s(o):o)}},formatBridgeData(t,i){try{const n=Math.random().toString(32).slice(2),o=[];for(let e in i){const a=n+"_a"+e,s=i[e],r={};!1===/OpenHarmony ([5-9])|OpenHarmony (\d{2})/i.test(navigator.userAgent)&&X(s,a,r);for(let e in r)t[e]=r[e],this.C2ReceiveQueue.push(t);o.push({type:Y(s),name:a,value:s})}return e("formatBridgeData",`格式化后的参数:${JSON.stringify(o)}`),{params:o,id:n}}catch(t){e("formatBridgeData","消息通讯数据格式化异常","error",t)}},h5SendMsgToAppByWindow(t,i={},n={}){const{nativeEvName:o,description:s,resDataFormat:r}=i,c=f(),l=`${o}Back`;let u=n;e("h5SendMsgToAppByWindow",`给【${c}】APP发送【${s}】-【${o}】事件调用,回调函数名称:【${l}】`,"log"),window[l]=i=>{let n=i;e("h5SendMsgToAppByWindow",`收到【${c}】APP发送的${s}事件调用的回调值:${JSON.stringify(n)},回调数据类型::${typeof n}`,"log"),n=a(n),t(r?r(n):n)},setTimeout(()=>{"ios"!==c.toLowerCase()?"android"!==c.toLowerCase()?window.harmony[o](u):window.android[o](u):window.webkit.messageHandlers[o].postMessage(u)},100)},h5SendMsgToAppByBrowser(t,i={},n={}){const o=f();e("h5SendMsgToAppByBrowser",`给【${o}】APP发送【${i.nativeEvName}】事件调用,入参:${JSON.stringify(n)}`,"log");const{nativeEvName:a,moduleName:s,isCustomEv:r}=i,{id:c,params:l}=n;if("android"!==o)return"ios"===o?(this.iosCallBackList.push({id:c,resolveInfo:t,configInfo:i}),void this.h5SendMsgToIOS(c,s,a,l,r)):void("harmony"===o&&this.h5SendMsgToHarmony(c,s,a,l,r));this.h5SendMsgToAndroid(c,s,a,l,r)},h5SendMsgToAndroid(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToAndroid",`发送给安卓APP的消息:${JSON.stringify(s)}`),JSON.parse(window.AndroidFunction.callAndroidFun(JSON.stringify(s)))},h5SendMsgToIOS(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToIOS",`发送给IOS APP的消息:${JSON.stringify(s)}`),JSON.parse(prompt(JSON.stringify(s)))},h5SendMsgToHarmony(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToHarmony",`发送给鸿蒙APP的消息:${JSON.stringify(s)}`),JSON.parse(window.harmonyFunction.callHarmonyFun(s))}},ee={msgList:[],msgStack:[],async miniAppH5SendMsgToApp(t,i,n){try{e("miniAppH5SendMsgToApp",`发送消息给webview:${i}`,"log");const o=await this.sendMsgToMiniApp({methodName:i,methodData:n});t(o?.resultInfo)}catch(n){e("miniAppH5SendMsgToApp",`执行${i}失败`,"error",n),t({isSuccess:!1,message:"执行事件失败,详情查看控制台"})}},sendMsgToMiniApp(t){return new Promise((n,o)=>{e("postMsgToWebview",`消息内容:${JSON.stringify(t)}`,"log");const{methodName:a,methodData:s}=t||{};if(!a)return void e("postMsgToWebview","请传入要调用的事件名称","warn");if(!s)return void e("postMsgToWebview","请传入要调用事件的数据信息","warn");const r=i(),c={data:{msgId:r,isH5Send:!0,...t}};if(this.msgList.push({id:r,resolveInfo:n,rejectInfo:o}),e("postMsgToWebview",`发送消息给父容器页面:${JSON.stringify(c)}`,"log"),!this.uniSDKInit)return e("postMsgToWebview","SDK尚未初始化完成,先行执行堆栈","log"),void this.msgStack.push({id:i(),msgContent:c,resolve:n,reject:o});uni?.webView?.postMessage?uni.webView.postMessage(c):uni?.postMessage(c)}).catch(t=>{e("postMsgToWebview","发生异常","error",t)})}},te={getMessageFromWebview(t,i=!1){let n={};try{n=i?t:t?.data||"{}",n=a(n)}catch(t){e("getMessageFromWebview","解析数据异常","error",t)}if(e("getMessageFromWebview",`是否为webview发送的消息内容:${n?.isWebviewSend},消息内容:${JSON.stringify(n)}`,"log"),!n?.isWebviewSend)return;const{msgId:o}=n,s=this.msgList.findIndex(e=>e.id===o);if(-1===s)return;const r=this.msgList[s],{resolveInfo:c}=r;c(n),this.msgList.splice(s,1)}},ie=[];let ne=new class{version="";isInit=!1;isWebviewPage=!1;anaSDKInit=!1;uniSDKInit=!1;weChatInit=!1;alipayInit=!1;iosCallBackList=[];C2ReceiveQueue=[];autoUpdate=!0;autoConfigMenuBtn=!0;weChatConfigReady=!1;constructor(e,t){this.version=e,this.isInit=!1,this.isWebviewPage=t,this.iosCallBackList=[],this.initModuleMethod(),this.initSDKAPI(),this.initDefaultConfig()}initModuleMethod(){n(L,this),n(J,this),n(W,this),n(K,this),n(U,this),n(j,this),n(R,this),n(Q,this),n(z,this),n(Z,this),n(G,this),n(V,this),n(te,this),n(ee,this)}init(t){e("init","SDK初始化任务执行处理"),w()?(N()&&this.initWebviewMsgFormat(),this.initSDKScriptFile(),this.trackSDKInit(t)):e("init","当前环境非浏览器环境,无需执行初始化动作","warn")}initSDKScriptFile(){e("initSDKScriptFile","挂载第三方SDK脚本文件"),this.initUNISDK(),C()?this.initWeChatSDK():this.initAliPaySDK()}initWebviewMsgFormat(){e("initWebviewMsgFormat","初始化被嵌套的页面消息通讯","log"),w()?(window.addEventListener("message",t=>{e("initWebviewMsgFormat","浏览器消息处理","log"),this.getMessageFromWebview(t)}),window.getMessageFromWebview=t=>{e("initWebviewMsgFormat","事件注入消息处理","log"),this.getMessageFromWebview(t,!0)}):e("initWebviewMsgFormat","该API仅支持在被webview嵌套的H5页面中使用","error","")}initUNISDK(){w()&&(M()||l("https://mobile.zwfw.hunan.gov.cn:8088/uni.webview.1.5.6.js","UNI").then(()=>{M()&&(this.uniSDKInit=!0,e("initUNISDK","UNI Webview SDK 挂载完成"))}))}initWeChatSDK(){if(e("initWeChatSDK","初始化weChat SDK"),w())return $()?(this.initWeChatConfig(),void e("initWeChatSDK","WeChat SDK已挂载完成,无需二次挂载")):void l("https://res.wx.qq.com/open/js/jweixin-1.6.0.js","微信").then(t=>{$()&&(this.weChatInit=!0,this.initWeChatConfig(),e("initWeChatSDK","WeChat SDK挂载完成"))})}initWeChatConfig(){this.weChatConfigReady||wx.request({url:`${O}/api/auth/wechat/v1/getJsapiTicket`,method:"POST",data:{url:window.location.href.split("#")[0]},success:t=>{const i=t?.data?.data;this.weChatConfigReady=!0,e("getLocationInWeChat","获取签名信息完成"),window?.wx?.config({appId:"wx44bc5d5e34ac0c01",timestamp:i?.timestamp,nonceStr:i?.noncestr,signature:i?.signature,jsApiList:["getLocation","openLocation","chooseImage","chooseFile","scanQRCode","previewImage","downloadImage"]}),this.checkLocationEvStation()},fail:t=>{e("initWeChatConfig",`获取签名信息失败,信息是:${JSON.stringify(t)}`)}})}initAliPaySDK(){e("initAliPaySDK","初始化Alipay SDK"),w()&&(A()||I()&&l("https://appx/web-view.min.js","支付宝").then(t=>{A()&&(this.alipayInit=!0,e("initAliPaySDK","Alipay SDK挂载完成"))}))}initSDKAPI(){S()&&(e("initSDKAPI","App的Webview环境,初始化C2调用链的回调函数"),this.initMobileBridgeGlobalConfig()),e("initSDKAPI","开始初始化SDK API"),k.forEach(t=>{const{eventName:i,moduleName:n,nativeEvName:o,isCustomEv:a}=t;if((n&&o||a)&&S()&&(e("initSDKAPI",`初始化C2调用链的回调函数:${i}`),this.checkMobileModuleBack(n,o,a)),!ie?.includes(i))try{this[i]=e=>new Promise(i=>{this.normalEvDataTransition(i,e,t)})}catch(t){e("initSDKAPI","执行API初始化挂载异常","error",t)}})}normalEvDataTransition(t,i={},n={}){const{eventName:o,description:a,reqDataFormat:s}=n||{},r=f();let c=i;if(s&&(c=s(i)),c)return S()?(e("normalEvDataTransition",`开始调用APP的嵌套H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.appH5SendMsgToApp(t,n,c)):y()?(e("normalEvDataTransition",`开始调用小程序/H5嵌套的H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.miniAppH5SendMsgToApp(t,o,c,a)):void(C()||I()?this.executeBrowserEvent(t,c,i,n):this.executeEvByNative(t,c,n));e(o,`给【${r}】APP发送【${a}】-【${o}】事件失败,请检查数据格式是否正确`,"error")}executeEvByNative(t,i,n){const{description:o,uniEvName:a,eventName:r,nativeResFormat:c}=n;try{e("executeEvByNative",`开始调用原生${o}的能力,API名称:${a},格式化前的参数信息:${JSON.stringify(i)}`),uni.sendNativeEvent(a,i,async i=>{e("executeEvByNative",`调用原生${o}的能力完成,结果:${JSON.stringify(i)}`,"log");let n=i;c&&(n=c(n),e("executeEvByNative",`调用原生${o}的能力完成,格式化后的结果:${JSON.stringify(n)}`,"log")),"fileDownload"===r&&i.isSuccess&&s(t,n),"getLocationInfo"!==r?"fileDownload"!==r&&s(t,n):uni.sendNativeEvent("System_getAppInfo",{},e=>{if(e.platform.toLowerCase().includes("harmony")){const e=((e,t)=>{const i=3.141592653589793,n=6378245,o=.006693421622965943;if(((e,t)=>t<72.004||t>137.8347||e<.8293||e>55.8271)(t,e))return[e,t];let a=b(e-105,t-35),s=D(e-105,t-35);const r=t/180*i;let c=Math.sin(r);c=1-o*c*c;const l=Math.sqrt(c);return a=180*a/(n*(1-o)/(c*l)*i),s=180*s/(n/l*Math.cos(r)*i),{lat:t+a,lng:e+s}})(i?.location?.longitude,i?.location?.latitude);n.location.longitude=e?.lng,n.location.latitude=e?.lat}s(t,n)})})}catch(i){t({isSuccess:!1,message:`${o}API执行失败,具体错误信息请查看控制台`}),e("executeEvByNative",`${o}API执行异常`,"error",i)}}initDefaultConfig(){e("initDefaultConfig","默认胶囊按钮配置执行初始化处理"),this.autoUpdate?this.resetMenuBtnConfig():e("initDefaultConfig","业务侧配置无需自动重置胶囊按钮,不至于页面切换事件监听")}}(F,N());w()&&(window.xybAgent=ne);export{ne as default};
|
|
1
|
+
const e=(e="",t="",i="log",n="")=>{const o={error:"错误",warn:"警告",info:"提示",log:"日志"}[i]||"日志",a=JSON.stringify(n);console.log(`\n=============🚀START - V${F} 🚀=============\n【事件名称】:${e} \n【日志类型】:${o} \n【日志信息】:${t} ${"error"===i?`【错误信息】:${JSON.stringify(a)}`:""} \n==============🚀END🚀==============`),console.log("")},t=(t={})=>{if("function"==typeof t)return e("deepClone","数据类型为function,无法执行深拷贝,请检查","error"),t;try{return JSON.parse(JSON.stringify(t))}catch(i){return e("deepClone","执行数据深拷贝异常","error",i),t}},i=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}),n=(e={},t={})=>{for(let i in e)t[i]=e[i]},o=(t=!1)=>{let i={route:null,path:null,options:{}};try{const e="function"==typeof getCurrentPages?getCurrentPages():[],n=[];for(let t in e)n.push({route:e[t].route,path:e[t].$page?.fullPath,options:e[t].$page?.options});const o=n?.length||0;if(o){const e=n[o-1],a=n[o-2];i=(t?a:e)||{}}}catch(t){e("getCurrentPagePath","获取页面信息失败","error",t)}return i},a=e=>{try{return JSON.parse(e)}catch(t){return e}},s=(t={},i={})=>{let n=i;try{n=a(i)}catch(t){e("formatResponseData","格式化失败","error",t),n=i}t(n)},r=e=>null==e,c=(e="",t="")=>{let i=t||window?.location?.href;if(i=decodeURIComponent(i),i?.includes(e)){let t=i.split(`${e}=`)[1];return t?.includes("&")&&(t=t.split("&")[0]),t}return""},l=(e="",t="")=>{if(e)return new Promise(t=>{const i=document.createElement("script");i.src=e,i.onload=t,document.head.appendChild(i)})},u=(t,i)=>{window?.my?.navigateTo({url:t,fail:t=>{e("openAlipayMiniApp","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})},d=(t,i)=>{window?.wx?.miniProgram?.navigateTo({url:t,fail:t=>{e("executeAuthFaceInBrowser","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})};let m={finished:!1,result:!1},g={finished:!1,result:!1},h={finished:!1,result:!1},v={finished:!1,result:!1};const p=()=>w()?navigator.userAgent.toLowerCase():"",f=()=>{const e=p();return/android/i.test(e)?"android":/iphone|ipad|ipod|mac/i.test(e)&&!window.MSStream?"ios":/windows phone/i.test(e)?"windows":"harmony"},w=()=>window&&document,y=()=>{if(v.finished)return v.result;if(v.finished=!0,!w())return v.result=!1,!1;const t=p();return v.result=t.includes("uni-app"),e("checkIsMiniAppBrowserEnv",`当前是否为小程序的浏览器环境:${v.result}`),v.result},N=()=>{const{finished:t,result:i}=m;return t?i:(m.result=(()=>{if(h.finished)return h.result;if(h.finished=!0,!w())return h.result=!1,!1;const t=p();return h.result=t.includes("xybwebcomponent")||t.includes("uni-app"),e("checkIsXybBrowserEnv",`当前是否为湘易办浏览器环境:${h.result}`),h.result})()||y(),m.finished=!0,e("checkIsWebviewEnv",`当前是否为Webview环境:${m.result}`),m.result)},S=()=>{const{finished:t,result:i}=g;if(t)return i;if(g.finished=!0,!w())return g.result=!1,!1;const n=p();return g.result=n.includes("xybwebcomponent")&&!n.includes("uniminiapp"),e("checkIsAppWebviewEnv",`当前是否为APP的Webview环境:${g.result}`),g.result},C=()=>w()?p().includes("micromessenger"):"mp-weixin"===f(),I=()=>w()?p().includes("alipay"):"mp-alipay"===f(),E=()=>!!uni&&(!!uni.sendNativeEvent&&("function"==typeof uni.sendNativeEvent||"undefined"!=typeof uni&&Object.prototype.hasOwnProperty.call(uni,"sendNativeEvent"))),M=()=>window?.uni&&"function"==typeof window?.uni?.webView?.postMessage,$=()=>"function"==typeof window?.wx?.chooseImage,A=()=>"function"===Boolean(window?.my)?.chooseImage,b=(e,t)=>{let i=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(t*PI)+40*Math.sin(t/3*PI))/3,i+=2*(160*Math.sin(t/12*PI)+320*Math.sin(t*PI/30))/3,i},D=(e,t)=>{let i=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(e*PI)+40*Math.sin(e/3*PI))/3,i+=2*(150*Math.sin(e/12*PI)+300*Math.sin(e/30*PI))/3,i},x=(t,i)=>{const n=52.35987755982988,o=t-.0065,a=i-.006,s=Math.sqrt(o*o+a*a)-2e-5*Math.sin(a*n),r=Math.atan2(a,o)-3e-6*Math.cos(o*n),c=s*Math.cos(r).toFixed(6),l=s*Math.sin(r).toFixed(6);return e("BaiduToGCJ02",`已完成百度坐标系转换成国测坐标系的转换,转换后的值:lng:${c}, lat:${l}`),{lng:c,lat:l}},P=t=>{const{dinateType:i,lat:n,lng:o,address:a}=t;return e("replaceCoordinate",`坐标转换开始:${i}`,"log"),x(t)},k=[{isCustomEv:!0,eventName:"authFace",uniEvName:"Auth_face",description:"人脸识别功能",nativeEvName:"faceAuth",reqDataFormat:t=>{e("authFace",`执行人脸验证,参数信息:${JSON.stringify(t)}`);const{name:i,certNo:n,appId:o,sign:a,created:s,nonce:r}=t;return i&&n&&o&&a&&s&&r?t:(e("authFace","缺少必要参数:name, certNo, appId, sign, created, nonce","error","缺少必要参数"),!1)},resDataFormat:e=>({isSuccess:Boolean(e),certifyId:e}),resErrorFormat:e=>"harmony"===f().toLowerCase()?{isSuccess:!1,errorMsg:e}:e},{isCustomEv:!0,eventName:"startNavigation",uniEvName:"Start_navigation",description:"目的地导航",nativeEvName:"start_navigation",reqDataFormat:t=>{let i={};const{dinateType:n,lat:o,lng:a,address:s,destinationLatitude:r,destinationLongitude:c}=t;return r&&c?t:(e("replaceCoordinate",`坐标系值:LAT:${o},LNG:${a}`,"log"),i=n&&"GCJ02"!==n?P(t):{destinationLatitude:o,destinationLongitude:a,destinationName:s},e("replaceCoordinate",`转换后值:LAT:${i.destinationLatitude},LNG:${i.destinationLongitude}`,"log"),i)}},{isWindowEv:!0,eventName:"getLoginStatus",uniEvName:"Auth_checkLogin",description:"获取登录状态",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>{const i=t(e);return{logined:1===Number(i?.isLogin)}},resErrorFormat:()=>({logined:!1})},{isWindowEv:!0,eventName:"getLoginUserInfo",uniEvName:"Auth_getUserInfo",description:"获取登录用户数据信息",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>t(e),resErrorFormat:()=>({isSuccess:!1})},{isCustomEv:!0,eventName:"getAuthToken",uniEvName:"Auth_getToken",description:"获取授权token",nativeEvName:"get_token",resDataFormat:e=>{try{const i=t(e);return{token:i?.token,isSuccess:Boolean(i?.token)}}catch(t){return{token:e?.token,isSuccess:Boolean(e?.token)}}},resErrorFormat:()=>({isSuccess:!1})},{isWindowEv:!0,eventName:"getAccessLink",uniEvName:"Auth_getAccessLink",nativeEvName:"CallNativeMethodGetAccessLink",description:"获取授权链接",resDataFormat:e=>"ios"===f().toLowerCase()?{isSuccess:!0,accessLink:e}:t(e),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"image",eventName:"chooseImg",uniEvName:"Image_choose",nativeEvName:"chooseImage",browserEvName:"chooseImage",description:"选择本地图片",reqDataFormat:e=>{const{count:t,sizeType:i,sourceType:n,isCircleCrop:o}=e||{};return{count:t||9,sizeType:i||["original","compressed"],sourceType:n||["album"],isCircleCrop:o||!1}},resDataFormat:e=>t(e),bResDataFormat:e=>{const{tempFiles:t}=e,i=[];for(let e in t){const{name:n,path:o,size:a,type:s}=t[e];i.push({name:n,path:o,size:a,type:s})}return{resultObj:i,isSuccess:!0,message:"选择图片功能操作完成"}}},{moduleName:"image",eventName:"imgPreview",uniEvName:"Image_preview",nativeEvName:"previewImage",browserEvName:"previewImage",description:"执行图片预览"},{moduleName:"image",eventName:"imgUpload",uniEvName:"Image_upload",nativeEvName:"uploadImage",description:"执行图片上传",resDataFormat:e=>t(e),resErrorFormat:e=>e},{eventName:"imgDownload",uniEvName:"Image_download",nativeEvName:"",browserEvName:"downloadImage",description:"执行图片下载"},{eventName:"fileUpload",uniEvName:"File_upload",nativeEvName:"",description:"执行文件上传"},{moduleName:"file",eventName:"fileDownload",uniEvName:"File_download",nativeEvName:"downloadFile",description:"执行文件下载",resDataFormat:e=>({isSuccess:Boolean(e),resultObj:{path:e}})},{moduleName:"file",eventName:"filePreview",uniEvName:"File_preview",nativeEvName:"previewFile",description:"执行文件预览"},{moduleName:"file",eventName:"openLocalFile",uniEvName:"File_openLocal",nativeEvName:"openLocalFile",description:"执行打开本地文件"},{moduleName:"file",eventName:"chooseLocalFile",uniEvName:"File_chooseLocal",nativeEvName:"chooseLocalFile",browserEvName:"chooseFile",description:"选择本地文件",resDataFormat:e=>t(e)},{moduleName:"file",eventName:"openThirdFile",uniEvName:"File_openThirdParty",nativeEvName:"openFileWithThirdParty",description:"执行打开第三方文件"},{eventName:"openApp",uniEvName:"Util_openApp",nativeEvName:"",description:"打开APP"},{isCustomEv:!0,eventName:"openXybApp",uniEvName:"Util_openXYBMiniApp",nativeEvName:"jumpToMiniApp",description:"打开湘易办融合APP小程序",reqDataFormat:e=>{if(S()){const{pageUrl:t}=e;return{...e,path:t}}return e}},{eventName:"postMsgToOtherApp",uniEvName:"Util_postMessageToXYBMiniApp",nativeEvName:"",description:"发送消息给其他小程序"},{isWindowEv:!0,eventName:"scanCode",uniEvName:"Scan_code",description:"扫描二维码",browserEvName:"scanQRCode",nativeEvName:"CallNativeMethodScanQRCode",resDataFormat:e=>({text:e}),bReqDataFormat:e=>({...e,needResult:1}),bResDataFormat:e=>({text:e?.resultStr||""})},{moduleName:"system",eventName:"getAppInfo",nativeEvName:"getAppInfo",description:"获取应用信息",uniEvName:"System_getAppInfo",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"copyToClipboard",uniEvName:"Util_clipboardData",nativeEvName:"clipboardData",description:"复制内容到剪切板",reqDataFormat:e=>({text:e}),resDataFormat:e=>S()?{isSuccess:Boolean(e)}:{isSuccess:!0}},{moduleName:"util",eventName:"getCacheSize",uniEvName:"Util_getCacheSize",nativeEvName:"getCacheSize",description:"获取缓存大小",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"clearCache",uniEvName:"Util_clearCache",nativeEvName:"clearCache",description:"执行缓存清除",resDataFormat:()=>({isSuccess:!0}),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"telephone",eventName:"callPhone",uniEvName:"Util_callDesignateNumber",nativeEvName:"call",description:"拨打电话",browserEvName:"makePhoneCall",reqDataFormat:e=>"object"==typeof a(e)?a(e):S()?{phoneCode:"+86",phoneNumber:String(e).replace("+86","")}:{text:e}},{eventName:"forbidScreenShot",uniEvName:"Util_forbidScreenShot",nativeEvName:"",description:"执行禁止截屏"},{eventName:"setScreenLight",uniEvName:"Util_setScreenLight",nativeEvName:"",description:"设置屏幕是否常亮",reqDataFormat:e=>({idleTimerValue:e})},{eventName:"sendMatterId",uniEvName:"Param_MatterID",nativeEvName:"",description:"执行页面事件ID上报",reqDataFormat:e=>({matterID:e})},{isWindowEv:!0,description:"获取位置信息",eventName:"getLocationInfo",uniEvName:"Util_getLocationInformation",nativeEvName:"CallNativeMethodGetLocationInformation",resDataFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),f().toLowerCase(),{isSuccess:!0,location:o}},nativeResFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),{isSuccess:!0,location:o}},resErrorFormat:()=>({isSuccess:!1,location:{}})},{eventName:"checkPermission",uniEvName:"Auth_matterHandleAuthority",nativeEvName:"",description:"检查事项权限",reqDataFormat:e=>({matterCode:e})},{eventName:"showComment",uniEvName:"Util_jumpToComment",nativeEvName:"",description:"打开评价弹窗"},{isWindowEv:!0,description:"打开微信小程序",eventName:"openWechatMiniApp",uniEvName:"Util_openWechatMiniProgram",nativeEvName:"CallNativeMethodJumpToWechatMiniProgram",reqDataFormat:e=>{if(S()){const t={};for(let i in e)t[i]=String(e[i]);return JSON.stringify(t)}return e}},{isWindowEv:!0,description:"打开支付宝小程序",eventName:"openAliPayMiniApp",uniEvName:"Util_openAlipayMiniProgram",nativeEvName:"CallNativeMethodJumpToAliPay",reqDataFormat:e=>S()?JSON.stringify(e):e},{eventName:"showMenuPanel",uniEvName:"menu_present",nativeEvName:"",description:"显示菜单面板"},{isCustomEv:!0,eventName:"addCalendarEvent",uniEvName:"Util_addCalendarEvent",nativeEvName:"addCalendarEvent",description:"添加日历日程"},{isCustomEv:!0,eventName:"deleteCalendarEvent",uniEvName:"Util_deleteCalendarEvent",nativeEvName:"deleteCalendarEvent",description:"删除日历日程"},{isCustomEv:!0,eventName:"queryCalendarEvent",uniEvName:"Util_queryCalendarEvent",nativeEvName:"queryCalendarEvent",description:"查询日历日程"}],F="0.0.25",O="https://xybfw.zwfw.hunan.gov.cn/gateway3",L={custom(t,i){e("custom",`通过custom调用${t}事件`);const n=k?.find(e=>e?.nativeEvName===t||e?.eventName===t);return new Promise((e,o)=>{const{reqDataFormat:a}=n||null,s=n||{isCustomEv:!0,moduleName:"custom",eventName:"call",description:"通过Custom调用的C2事件",nativeEvName:t};if(!S())return void e({code:-1,msg:"非APP环境的Webview环境,不支持该功能"});const r=a?a(i):i;this.executeSendMsgToApp({moduleName:"custom",eventName:"call",actionName:t,isCustomEv:!0,dataInfo:r,resolveInfo:e,evConfig:s})})}},T=e=>Number(e)>9?e:`0${e}`,B=()=>{const e=new Date;return`${e.getFullYear()}-${T(e.getMonth()+1)}-${T(e.getDate())} ${T(e.getHours())}:${T(e.getMinutes())}:${T(e.getSeconds())}`},J={trackStack:[],anaSDKLoadTimes:0,locationInfo:{},isProdEnv:!1,track(t="",n={}){if(t){if(n)return w()&&!this.anaSDKInit?(this.trackStack.push({id:i(),eventID:t,eventPro:n}),void e("track","埋点上报插件初始化未完成,本次数据在插件初始化后自动上报","log")):void this.executeTrack(t,n);e("track","埋点数据上报失败","error","请传入埋点数据")}else e("track","埋点数据上报失败","error","请传入埋点事件")},async executeTrack(t="",i={}){if("object"==typeof t)return void await this.track(t?.eventID,t?.eventPro);const n=await this.initTrackParams(i);if(e("track",`执行埋点数据上报,事件名称:${t},事项编码:${n.code},是否上报到生产环境:${this.isProdEnv},完整埋点数据:${JSON.stringify(n)}`,"log"),w()&&xybAgent?.AnalysysAgent)return e("track","通过浏览器插件执行埋点数据上报","log"),void window.xybAgent.AnalysysAgent.track(t,n);if(E())try{e("track",`埋点数据:${JSON.stringify(n)},埋点ID:${t}`,"log"),uni.sendNativeEvent("Analysis_common",{eventID:t,eventPro:n})}catch(t){e("track","执行数据埋点功能异常","error",t)}},trackSDKInit(t){return new Promise((i,n)=>{w()||(e("initTrack","非浏览器环境无需使用init执行初","error"),i(!0)),this.anaSDKInsert?this.configAnaSDK(t,i):l("https://mobile.zwfw.hunan.gov.cn:8088/AnalysysAgent_JS_SDK.min.js","极光").then(()=>{window.AnalysysAgent&&(xybAgent.AnalysysAgent=window.AnalysysAgent,this.anaSDKInsert=!0,this.configAnaSDK(t,i))})})},configAnaSDK(t,i){const n="800c298f0c42c94c",o="40d556c15f872084";let a=location?.host?.includes("hunan.gov.cn")?n:o;if("object"==typeof t)a=o;else{const e={production:n,development:o},i=[n,o];(e[t]||i.includes(t))&&(a=e[t]?e[t]:t)}this.isProdEnv=a===n,e("configAnaSDK",`配置信息:${JSON.stringify(t)},是否为生产环境:${this.isProdEnv},上报的key值:${a}`),w()?(window.xybAgent.AnalysysAgent&&(window.xybAgent.AnalysysAgent.init({appkey:a,uploadURL:"https://mobile.zwfw.hunan.gov.cn:8088/aurora-api"}),e("configAnaSDK","xybAgent已初始化完成,可正常执行埋点操作","log"),this.anaSDKInit=!0,this.isInit=!0,this.checkTrackStack(),i(!0)),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes<10&&setTimeout(()=>this.trackSDKInit(i),300),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes>=10&&(e("configAnaSDK","xybAgent初始化失败","error","请检查app key、uploadURL是否正确"),i(!1))):i(!1)},async initTrackParams(e={}){const{code:t,name:i,aff_city_code:n,aff_city_name:o,unit_code:a,area_code:s,unit_name:r,is_finish:c,category:l,user_id:u,miniAppCode:d,$url_domain:m}=e,g=this.getVisitSource(),h=this.getPageSource(),v=await this.getPositionInfo();return{code:t||void 0,name:i||void 0,aff_city_code:n||void 0,aff_city_name:o||void 0,unit_code:a||void 0,area_code:s||void 0,unit_name:r||void 0,is_finish:c||void 0,category:l||void 0,user_id:u||void 0,miniAppCode:d||void 0,$url_domain:m||void 0,curr_time:B(),source:g,page_source:h,location:v}},getVisitSource(){if(!w()){const e=uni?.getSystemInfoSync(),{uniPlatform:t}=e||{};return"mp-weixin"===t?"wx":"mp-alipay"===t?"alipay":"app"}return C()?"wx":I()?"alipay":"app"},checkTrackStack(){e("checkTrackStack","执行埋点数据堆栈检测","log");t(this.trackStack).forEach(t=>{const{eventID:i,eventPro:n,id:o}=t;e("checkTrackStack",`执行id值为${o} 的埋点数据再次上报`,"log"),this.track(i,n);const a=this.trackStack.findIndex(e=>e.id===o);a>-1&&this.trackStack.splice(a,1)})},getPageSource(){let e=null;e=w()?location.href:decodeURIComponent(o().path);const t=e?.includes("source=");if(!t)return"click";const i=e.split("source=")[1];let n="click";return n=i.includes("&")?i.split("&")[0]:i,["copy","share","click","search"].includes(n)?n:"click"},async getPositionInfo(){if(!this.locationInfo?.province)try{const{location:e}=await this.getLocationInfo()||{};this.locationInfo=e||""}catch(t){e("getLocationInfo","获取位置信息异常","error",t),this.locationInfo={}}return JSON.stringify(this.locationInfo)}},W={initMobileBridgeGlobalConfig(){const t=f();e("initMobileBridgeGlobalConfig",`开始初始化移动端桥链接配置,访问设备类型:${t}`),window.c2={},"ios"===t&&this.initIOSCallbackEvConfig(),"android"===t&&this.initAndroidCallbackEvConfig(),e("initMobileBridgeGlobalConfig","初始化移动端桥链接配置完成"),window.CreatorJsBridge=window.c2},initIOSCallbackEvConfig(){try{const t=this;window.c2.iOS={},window.c2.iOS.callJS=function(){window?.c2.iOS?.callJSCallback||(window.c2.iOS.callJSCallback={}),e("initIOSCallbackEvConfig",`开始处理IOS设备回调事件,回调数据:${JSON.stringify(arguments)}`),t.IOSCallbackEvFormat(arguments[0])}}catch(t){e("initIOSCallbackEvConfig","初始化IOS回调事件配置异常","error",t)}},initAndroidCallbackEvConfig(){window.c2.sendDataWarpToWeb=(e,t,i)=>{e(i)}},IOSCallbackEvFormat(i){const{returnValue:n,funcName:o}=i;let s=this.base64Decode(n);s=a(s),e("IOSCallbackEvFormat",`IOS设备回调事件处理开始,回调数据:${JSON.stringify(s)}, 格式:${typeof s}`);const r=o.split("_a")[0],c=o.replace(r,""),l=this.iosCallBackList.find(e=>e.id===r);if(!l)return;const{resolveInfo:u,configInfo:d}=l,{resDataFormat:m,resErrorFormat:g}=d;if(c.includes("onFail")&&g)return s=g({isSuccess:!1,errorMsg:t(n)}),void u(s);m&&(s=m(s)),e("IOSCallbackEvFormat",`IOS设备回调事件处理完成,返回数据:${JSON.stringify(s)}`),u(s);const h=this.iosCallBackList.findIndex(e=>e.id===r);this.iosCallBackList.splice(h,1)},base64Decode(e){let t,i,n,o,a,s,r,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u<e.length;)o=c.indexOf(e.charAt(u++)),a=c.indexOf(e.charAt(u++)),s=c.indexOf(e.charAt(u++)),r=c.indexOf(e.charAt(u++)),t=o<<2|a>>4,i=(15&a)<<4|s>>2,n=(3&s)<<6|r,l+=String.fromCharCode(t),64!=s&&(l+=String.fromCharCode(i)),64!=r&&(l+=String.fromCharCode(n));return l=this._utf8_decode(l),l},_utf8_decode(e){let t="",i=0,n=0,o=0,a=0;for(;i<e.length;)n=e.charCodeAt(i),n<128?(t+=String.fromCharCode(n),i++):n>191&&n<224?(a=e.charCodeAt(i+1),t+=String.fromCharCode((31&n)<<6|63&a),i+=2):(a=e.charCodeAt(i+1),o=e.charCodeAt(i+2),t+=String.fromCharCode((15&n)<<12|(63&a)<<6|63&o),i+=3);return t},checkMobileModuleBack(e,t,i){const n=i?"custom":e,o=`${i?"call":t}Callback`;window.c2.hasOwnProperty(n)||(window.c2[n]={}),window.c2[n].hasOwnProperty(o)||(window.c2[n][o]={})}};let _=null,q=null,H=null;E()?(_=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-RUM"):null,q=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-Tracer"):null,H=uni&&uni?.getSystemInfoSync?uni.getSystemInfoSync().platform:null):e("请求插件初始化","未找到uni对象","warn");const K={defaults:{headers:{},baseURL:""},interceptor:{request:null,response:null},requestOb:!1,request(i={}){return new Promise((n,o)=>{let a=t(i);if(!this.interceptor.request||"function"!=typeof this.interceptor.request||i.ignore||(a=this.interceptor.request(i),a))if(E()&&this.requestOb&&Boolean(_)&&Boolean(q))try{e("request","走服务监控平台的请求配置","log"),this.executeCloudObRequest(a,n,o)}catch(t){e("request","走服务监控平台的请求配置失败","error",t)}else e("request","走uni的请求配置","log"),this.executeNormalRequest(a,n,o);else n(!1)})},executeCloudObRequest(t,n,o){let a=i();const s=this.checkCloudObRequestHeader(t,a);if(!s)return;const{traceHeader:c,filter:l}=s;let u,d,m;_.startResource({key:a}),uni.request({url:`${this.defaults.baseURL}${t.url}`,method:t.method,header:c,data:t.data,timeout:t.timeout,withCredentials:t?.withCredentials||void 0,success:i=>{if(e("executeCloudObRequest",`接口:${t.url},请求成功`,"log"),l||(u=i.header,d=i.data.toString(),m=i.statusCode),r(t.success)||t.success(i),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(i);return void n(e)}n(i)},fail:i=>{e("executeCloudObRequest",`接口:${t.url},请求失败`,"error",i),l||(d=i?.errMsg),r(t?.fail)||t.fail(i),o(i)},complete:()=>{if(e("executeCloudObRequest",`接口:${t.url},请求完成`,"log"),!l){e("executeCloudObRequest",`无filter配置的数据信息::::key值:${a};URL地址:${t.url};`),_.stopResource({key:a});const i={url:`${this.defaults.baseURL}${t.url}`,httpMethod:t.method,requestHeader:c,responseHeader:u,responseBody:d,resourceStatus:m};_.addResource({key:a,content:i})}Boolean(t?.complete)&&t?.complete()}})},checkCloudObRequestHeader(t,i){let n;r(t?.filterPlatform)?(e("executeCloudObRequest",`options.filterPlatform:${t.filterPlatform}`,"log"),n=!1):(n=t?.filterPlatform?.includes(H),e("executeCloudObRequest",`platform:${t.filterPlatform}`,"log")),e("executeCloudObRequest",`rum:${_},tracer:${q}`,"log");let o={};return n||(o=q?.getTraceHeader({key:i,url:t.url})),e("executeCloudObRequest",`是否读取到【tracer】插件配置:${Boolean(q)},是否读取到【rum】插件配置:${Boolean(_)}`,"log"),_&&q?(o=Object.assign({},o,t.header),o=Object.assign({},o,this.defaults.headers),{traceHeader:o,filter:n}):(e("executeCloudObRequest","请配置服务监控平台原生插件","log"),!1)},executeNormalRequest(t,i,n){const{url:o,header:a,data:s,method:r}=t||{},c=Object.assign({},this.defaults.headers,a);uni.request({url:`${this.defaults.baseURL}${o}`,header:c,data:s,method:r,withCredentials:t?.withCredentials||void 0,success:n=>{if(e("normalRequest",`接口:${o},请求成功`,"log"),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(n);return void i(e)}i(n)},fail:t=>{e("normalRequest",`接口:${o},请求异常`,"error",t),n(t)}})}},U={resetMenuBtnConfig(){e("hideNativeBtn","隐藏原生APP分享、评价按钮","log");const t={share:{show:!1},comment:{show:!1},favorite:{show:!0}};try{this.menuBtnConfig(t),this.pageChangeEv(i=>{if(!this.autoUpdate)return void e("resetMenuBtnConfig","业务侧设置不自动重置胶囊按钮,中断配置动作");const{options:n}=i,{xybModuleCode:o}=n||{};if(o&&this.autoConfigMenuBtn)return e("resetMenuBtnConfig",`页面拦截事件生效 自动设置原生APP分享、评价按钮,配置信息:${JSON.stringify(i)}`,"log"),void this.menuBtnConfig({share:{show:!0,code:o,type:4},comment:{show:!0,code:o,type:4},favorite:{show:!0}});e("resetMenuBtnConfig","页面拦截事件生效 自动重置原生APP分享、评价按钮配置信息","log"),this.menuBtnConfig(t)})}catch(t){e("resetMenuBtnConfig","配置APP的胶囊按钮清单显示失败,请检查参数是否正确","error",t)}},pageChangeEv(t){if(!uni)return;["navigateTo","redirectTo","switchTab","reLaunch","navigateBack","onBackPress"].forEach(i=>{try{uni.addInterceptor(i,{invoke(n){try{const{url:a}=n;let s={options:{},path:null,route:null},r=decodeURIComponent(a);s.path=r,s.route=r.split("?")[0],r?.includes("xybModuleCode=")&&(console.log(`🚀当前页面路径信息:${r}`),s.options.xybModuleCode=c("xybModuleCode",r)),r?.includes("?")&&(s.route=r.split("?")[0]),i?.includes("Back")&&(s=o(i?.includes("Back"))),e("pageChangeEv",`页面路径发生了变化,当前页面路径:${s.path}`,"log"),"function"==typeof t&&t(s)}catch(t){console.log("🚀 错误信息:::::",t),e("pageChangeEv","拦截路径变化时发生了异常","error",t)}return!0}})}catch(t){e("pageChangeEv","执行页面变化拦截异常","error",t)}})},menuBtnConfig(t={}){e("menuBtnConfig",`配置APP胶囊按钮清单显示,配置信息:${JSON.stringify(t)}`,"log");let i=!0;for(let n in t){if("object"!=typeof t[n]){i=!1,e("menuBtnConfig","配置参数错误","error","请传入一个Object配置数据");break}}if(i)if(N())this.miniAppH5SendMsgToApp(null,"menuBtnConfig",t,"配置APP的胶囊按钮清单显示");else if(!w()&&uni&&uni?.sendNativeEvent)try{e("menuBtnConfig","开始执行配置APP胶囊按钮清单显示","log"),uni?.sendNativeEvent("Util_MiniAppConfigMenu",t)}catch(t){e("menuBtnConfig","配置APP的胶囊按钮清单显示时发生异常","error",t)}else e("menuBtnConfig","配置APP胶囊按钮清单显示功能无法在非UNI环境运行","log")}},R={executeBrowserEvent(t,i={},n={},o={}){const a=C()?"微信小程序":I()?"支付宝小程序":"浏览器",{eventName:s,description:r,browserEvName:c,bResDataFormat:l,bReqDataFormat:u,reqDataFormat:d}=o,m="startNavigation"===s?n:i;e("normalEvDataTransition",`开始调用${a}嵌套H5的能力,事件名称:${s},入参:${JSON.stringify(m)},配置信息:${JSON.stringify(o)}`);const g={authFace:"executeAuthFaceInBrowser",getLocationInfo:"executeGetLocationInBrowser",startNavigation:"startNavigationInBrowser",fileUpload:"executeFileUploadInBrowser",chooseImg:"executeImageChooseInBrowser"}[s];if(g)return void this[g](t,m,o);if(!c)return void t({isSuccess:!1,code:-1,message:`非常抱歉,${r}功能无法在当前环境中使用`});const h=d?d(i):u?u(i):i;I()||C()?this.executeMPBrowserEvent(t,c,i,s):this.executeNativeBrowserEv(t,c,h,l)},executeMPBrowserEvent(i,n,o,a){e("executeMPBrowserEvent",`配置信息:${JSON.stringify(o)}`);let s=t(o);e("executeMPBrowserEvent",`配置信息:${JSON.stringify(s)}`),s.success=t=>{e("executeMPBrowserEvent",`执行:${a}事件完成,返回结果:${JSON.stringify(t)}`)},s.fail=t=>{e("executeMPBrowserEvent",`执行:${a}事件失败,错误信息:${JSON.stringify(t)}`)},e("executeWeChatBrowserEv",`${a},配置信息:${JSON.stringify(s)}`),C()?window.wx[n](s):window.my[n](s)},executeNativeBrowserEv(e,i){let n=t(i);n.success=function(e){console.log(e)},n.fail=function(e){console.error(e)},window.uni[e](n)}},G={executeAuthFaceInBrowser(t,i={},n={}){const o=function(i){let n=c("faceKey",window?.location?.href);if(e("executeAuthFaceInBrowser",`获取到的faceKey参数值::::${n}`),!window?.location?.href.includes("faceKey"))return;const a={isSuccess:Boolean(n),certifyId:`MINI_${n}`,portrait:null,errorMsg:Boolean(n)?null:"人脸验证失败,请检查参数信息"};window.removeEventListener("hashchange",o),setTimeout(()=>{e("executeAuthFaceInBrowser",`执行验证结果回抛给业务侧:${JSON.stringify(a)}`),t(a)},100)};window.addEventListener("hashchange",o);const a=encodeURIComponent(window.location.href),{certNo:s,name:r}=i;let l=`/pages/sdk/sdk?redirectUrl=${a}&type=authFace&idCard=${encodeURIComponent(s)}&name=${r}`;C()?d(l,t):I()?u(l,t):(e("executeAuthFaceInBrowser","当前环境不支持人脸识别","warning"),t({isSuccess:!1,code:-1,message:"当前环境下不支持人脸识别验证功能"}))}},j={locationCheck:!1,locationEvList:[],checkLocationEvStation(){this.locationEvList.forEach(e=>{this.getLocationInWeChat(e.resolveInfo,e.id)})},executeGetLocationInBrowser(t){e("executeGetLocationInBrowser","在微信/支付宝浏览器中获取定位信息"),I()?this.getLocationInAliPay(t):C()?this.getLocationInWeChat(t):t({code:-1,isSuccess:!1,message:"当前环境无法支持位置信息获取,请检查是否为湘易办相关环境"})},getLocationInWeChat(t,n){return this.weChatConfigReady?this.locationCheck?(e("getLocationInWeChat","已缓存签名信息,直接调用对应API获取位置信息"),void this.executeGetLocationInfoData(t,n)):void this.executeGetLocationInfoData(t,n):(e("getLocationInWeChat","微信SDK尚未初始化完毕,先行进行堆栈,待微信SDK初始化后,统一调用"),void this.locationEvList.push({id:i(),resolveInfo:t}))},executeGetLocationInfoData(t,i){e("executeGetLocationInfoData","在微信环境中获取位置信息"),window?.wx?.getLocation({type:"wgs84",success:n=>{this.locationCheck=!0,e("executeGetLocationInfoData",`调用微信获取位置信息完成,结果是:${JSON.stringify(n)}`),this.executeGetDetailLocation(t,n,i)},fail:i=>{t({isSuccess:!1,message:"调用微信获取位置信息失败,请联系管理员"}),e("executeGetLocationInfoData",`调用微信获取位置信息失败,信息是:${JSON.stringify(i)}`)}})},executeGetDetailLocation(t,i,n,o=!1){uni.request({url:`${O}/api/auth/baidumap/v1/reverse_geocoding?location=${i.latitude},${i?.longitude}`,method:"GET",success:i=>{const{data:a}=i?.data||{},s=this.formatLocationData(a,o);if(t(s),n){e("executeGetDetailLocation",`已成功获取到定位信息,清除该事件的堆栈:${n}`);const t=this.locationEvList.findIndex(e=>e.id===n);-1!==t&&this.locationEvList.splice(t,1)}},fail:t=>{e("executeGetDetailLocation","获取位置信息失败","error",JSON.stringify(t))}})},formatLocationData(t={},i=!1){const n=t?.result||{},{lng:o,lat:a}=n?.location||{},{cityCode:s,formatted_address:r}=n||{},{district:c,city:l,country:u,adCode:d,province:m}=n?.addressComponent||{},g=i?n?.location:x(o,a),h={isSuccess:!0,location:{district:c,city:l,longitude:g?.lng,country:u,cityCode:s,adCode:d,address:r,latitude:g?.lat,province:m}};return e("executeGetDetailLocation",`获取位置信息调用完成,结果:${JSON.stringify(h)}`),h},getLocationInAliPay(t){window?.my?.getLocation({type:"wgs84",success:i=>{e("getLocationInAliPay",`支付宝下获取位置信息完成:::${JSON.stringify(i)}`),this.executeGetDetailLocation(t,i,null,!0)},fail:i=>{e("getLocationInAliPay",`获取位置信息失败,错误信息:${JSON.stringify(i)}`,"error",i),t({isSuccess:!1,message:"获取位置信息失败,请联系湘易办相关技术人员"})}})}},z={executeImageChooseInBrowser(t,i,n){const{count:o,sizeType:a,sourceType:s}=i,{bResDataFormat:r}=n;if(C()||I()){const i={count:o||9,mediaType:["image"],sizeType:a||["original","compressed"],sourceType:s||["album"],success:i=>{i?.success&&t(r?r(i):i),e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行完毕,结果:${JSON.stringify(i)}`)},fail:t=>{e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行失败,结果:${JSON.stringify(t)}`)}};return void(I()?window.my.chooseImage(i):window.wx.chooseImage(i))}t({isSuccess:!1,code:-1,message:"目前环境暂不支持,敬请期待"})}},V={navigationCheck:!1,startNavigationInBrowser(t,i={}){const n=encodeURIComponent(window?.location?.href),{lat:o,lng:a,address:s,name:r,dinateType:c}=i;let l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${o}&longitude=${a}&address=${s}&name=${r}`;if(c&&"GCJ02"!==c){const e=P(i),{destinationLatitude:t,destinationLongitude:o}=e;l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${t}&longitude=${o}&address=${s}&name=${r}`}e("startNavigationInBrowser",`跳转目标URL:${l}`),C()?d(l,t):I()?u(l,t):(e("startNavigationInBrowser","导航功能无法在当前环境下执行"),t({isSuccess:!1,code:-1,message:"导航功能无法在当前环境下执行,请检查是否为微信/支付宝小程序的浏览器环境中"}))}},Q={wvInfo:null,isHarmony:!1,isCheckDevice:!1,async initMessage(...t){const i=t[0];await this.checkDeviceInfo(),await this.initVMInfo(t[2]),w()?window.addEventListener("message",t=>{e("initMessage",`浏览器webview接收到的消息内容,${JSON.stringify(t)}`,"log"),this.getMsgFromH5(t)}):(e("initMessage",`非浏览器中的webview接收到的消息内容,${JSON.stringify(i)}`,"log"),this.getMsgFromH5(i))},checkDeviceInfo(){this.isCheckDevice||(this.isCheckDevice=!0,uni.sendNativeEvent("System_getAppInfo",{},e=>{this.isHarmony=e?.platform?.toLowerCase().includes("harmony")}))},initVMInfo(t){if(!this.wvInfo)if(this.isHarmony)this.wvInfo=uni.createWebviewContext("webview",t);else try{this.wvInfo=t,t?.$scope?.$getAppWebview()&&(this.wvInfo=t.$scope.$getAppWebview().children()[0])}catch(t){e("initMessage","初始化消息模块,是否包含wvInfo:"+typeof this.wvInfo?.evalJS)}},getMsgFromH5(t={}){let i=this.getMsgDataFromH5(t);const{origin:n}=t||{},{href:o}=location||{};if(w()&&o?.includes(n))return!1;const{isH5Send:a,methodName:s,methodData:r}=i||{};return!!a&&(s?null==r?(e("getMsgFromH5","请传入需要执行的事件数据","warn"),!1):(e("getMsgFromH5",`需要执行的事件名称【${s}】,需要执行的事件数据【${JSON.stringify(r)}】,是否为H5发送的消息【${a}】`,"log"),void(this[s]?this.executeH5MethodName(s,i):e("getMsgFromH5",`【${s}】事件不存在`,"warn"))):(e("getMsgFromH5","请传入需要执行的事件名称","warn"),!1))},executeH5MethodName(t,i){const{msgId:n,methodData:o}=i;try{const i=this[t].toString();if(e("executeH5MethodName",`【${t}】方法定义:${i}`,"log"),i.includes("Promise"))return void this[t](o).then(i=>{e("executeH5MethodName",`${t}方法执行结果:${JSON.stringify(i)}`,"log");let o=i;try{o=JSON.parse(i)}catch(t){e("executeH5MethodName","强制给数据进行序列化失败","error",t)}this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:o,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}).catch(i=>{e("executeH5MethodName",`${t}方法执行失败`,"error",i),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法失败,具体错误信息,请查看控制台`})});this[t](o),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}catch(i){e("getMsgFromH5",`${t}方法执行失败`,"error",i)}},postMsgToH5(t){const i=JSON.stringify(t);if(e("postMsgToH5",`消息内容:${i}`,"log"),w()){e("postMsgToH5","父页面运行在浏览器","log");document.querySelector("iframe").contentWindow.postMessage(JSON.stringify(i),"*")}else try{e("postMsgToH5","父页面运行在非浏览器","log"),this.wvInfo.evalJS(`getMessageFromWebview('${i}')`)}catch(t){e("postMsgToH5","执行浏览器的webview回传异常","error",t)}},getMsgDataFromH5(t){let i=null;const{data:n}=t;try{i=w()?n?.data?.arg?n?.data?.arg:n?.data?n.data:n:t.detail?.data[0]}catch(t){return e("getMsgDataFromH5","处理消息内容时发生异常","error",t),!1}return e("getMsgDataFromH5",`获取到的消息内容:${JSON.stringify(i)}`,"log"),i}},X=(t,i,n)=>{if(e("_parseFunction",`${JSON.stringify(t)}`),"function"==typeof t)return n[i]=t,void(t="[Function]::"+i);if("object"!=typeof t)return;let o=null;for(let e in t)switch(typeof t[e]){case"object":o=i?i+"_"+e:e,X(t[e],o,n);break;case"function":o=i?i+"_"+e:e,n[o]=t[e],t[e]="[Function]::"+o}},Y=e=>{let t=0;return"string"==typeof e?t=1:"number"==typeof e?t=2:"boolean"==typeof e?t=3:"function"==typeof e?t=4:e instanceof Array?t=6:"object"==typeof e&&(t=5),t},Z={appH5SendMsgToApp(e,t={},i={}){const{isWindowEv:n,moduleName:o,nativeEvName:a,isCustomEv:s}=t;if(n)return void this.h5SendMsgToAppByWindow(e,t,i);const r=s?"custom":o,c=s?"call":a;this.executeSendMsgToApp({resolveInfo:e,moduleName:r,eventName:c,actionName:a,dataInfo:i,isCustomEv:s,evConfig:t})},executeSendMsgToApp(i={}){const{moduleName:n,eventName:o,actionName:a,dataInfo:s,resolveInfo:r,isCustomEv:c,evConfig:l}=i||{},{description:u}=l,d=this;try{let i={};if(("object"==typeof s?Object.keys(s):[]).length>0&&(i=t(s)),c){const n=t(i);e("webviewSendMsgToApp",`${u}功能在是通过custom.call的方式调用,需要重新处理入参`),i.params=n,i.action=a}e("webviewSendMsgToApp",`${u}的完整参数:${JSON.stringify(i)}`),this.initEventCallbackEv(r,i,l);const m=function(){return d.formatBridgeData(window.c2[n][`${o}Callback`],arguments)}(i);e("webviewSendMsgToApp",`${u}功能在${f()}的Webview环境下执行,调用参数:${JSON.stringify(m)}`),this.h5SendMsgToAppByBrowser(r,l,m)}catch(t){console.log(`🚀发送消息给APP出现错误,错误信息:${t},${JSON.stringify(t)}`),e("webviewSendMsgToApp",`${u}执行数据处理失败`,"error",t)}},initEventCallbackEv(i,n,o={}){const{description:a,resDataFormat:s,resErrorFormat:r}=o;n.onSuccess=function(t){e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行完成`),i(s?s(t):t)},n.onFail=function(n){const o=t(n);e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行失败,收到的回调数据:::${JSON.stringify(o)}`),i(r?r(o):s?s(o):o)}},formatBridgeData(t,i){try{const n=Math.random().toString(32).slice(2),o=[];for(let e in i){const a=n+"_a"+e,s=i[e],r={};!1===/OpenHarmony ([5-9])|OpenHarmony (\d{2})/i.test(navigator.userAgent)&&X(s,a,r);for(let e in r)t[e]=r[e],this.C2ReceiveQueue.push(t);o.push({type:Y(s),name:a,value:s})}return e("formatBridgeData",`格式化后的参数:${JSON.stringify(o)}`),{params:o,id:n}}catch(t){e("formatBridgeData","消息通讯数据格式化异常","error",t)}},h5SendMsgToAppByWindow(t,i={},n={}){const{nativeEvName:o,description:s,resDataFormat:r}=i,c=f(),l=`${o}Back`;let u=n;e("h5SendMsgToAppByWindow",`给【${c}】APP发送【${s}】-【${o}】事件调用,回调函数名称:【${l}】`,"log"),window[l]=i=>{let n=i;e("h5SendMsgToAppByWindow",`收到【${c}】APP发送的${s}事件调用的回调值:${JSON.stringify(n)},回调数据类型::${typeof n}`,"log"),n=a(n),t(r?r(n):n)},setTimeout(()=>{"ios"!==c.toLowerCase()?"android"!==c.toLowerCase()?window.harmony[o](u):window.android[o](u):window.webkit.messageHandlers[o].postMessage(u)},100)},h5SendMsgToAppByBrowser(t,i={},n={}){const o=f();e("h5SendMsgToAppByBrowser",`给【${o}】APP发送【${i.nativeEvName}】事件调用,入参:${JSON.stringify(n)}`,"log");const{nativeEvName:a,moduleName:s,isCustomEv:r}=i,{id:c,params:l}=n;if("android"!==o)return"ios"===o?(this.iosCallBackList.push({id:c,resolveInfo:t,configInfo:i}),void this.h5SendMsgToIOS(c,s,a,l,r)):void("harmony"===o&&this.h5SendMsgToHarmony(c,s,a,l,r));this.h5SendMsgToAndroid(c,s,a,l,r)},h5SendMsgToAndroid(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToAndroid",`发送给安卓APP的消息:${JSON.stringify(s)}`),JSON.parse(window.AndroidFunction.callAndroidFun(JSON.stringify(s)))},h5SendMsgToIOS(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToIOS",`发送给IOS APP的消息:${JSON.stringify(s)}`),JSON.parse(prompt(JSON.stringify(s)))},h5SendMsgToHarmony(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToHarmony",`发送给鸿蒙APP的消息:${JSON.stringify(s)}`),JSON.parse(window.harmonyFunction.callHarmonyFun(s))}},ee={msgList:[],msgStack:[],async miniAppH5SendMsgToApp(t,i,n){try{e("miniAppH5SendMsgToApp",`发送消息给webview:${i}`,"log");const o=await this.sendMsgToMiniApp({methodName:i,methodData:n});t(o?.resultInfo)}catch(n){e("miniAppH5SendMsgToApp",`执行${i}失败`,"error",n),t({isSuccess:!1,message:"执行事件失败,详情查看控制台"})}},sendMsgToMiniApp(t){return new Promise((n,o)=>{e("postMsgToWebview",`消息内容:${JSON.stringify(t)}`,"log");const{methodName:a,methodData:s}=t||{};if(!a)return void e("postMsgToWebview","请传入要调用的事件名称","warn");if(!s)return void e("postMsgToWebview","请传入要调用事件的数据信息","warn");const r=i(),c={data:{msgId:r,isH5Send:!0,...t}};if(this.msgList.push({id:r,resolveInfo:n,rejectInfo:o}),e("postMsgToWebview",`发送消息给父容器页面:${JSON.stringify(c)}`,"log"),!this.uniSDKInit)return e("postMsgToWebview","SDK尚未初始化完成,先行执行堆栈","log"),void this.msgStack.push({id:i(),msgContent:c,resolve:n,reject:o});uni?.webView?.postMessage?uni.webView.postMessage(c):uni?.postMessage(c)}).catch(t=>{e("postMsgToWebview","发生异常","error",t)})}},te={getMessageFromWebview(t,i=!1){let n={};try{n=i?t:t?.data||"{}",n=a(n)}catch(t){e("getMessageFromWebview","解析数据异常","error",t)}if(e("getMessageFromWebview",`是否为webview发送的消息内容:${n?.isWebviewSend},消息内容:${JSON.stringify(n)}`,"log"),!n?.isWebviewSend)return;const{msgId:o}=n,s=this.msgList.findIndex(e=>e.id===o);if(-1===s)return;const r=this.msgList[s],{resolveInfo:c}=r;c(n),this.msgList.splice(s,1)}},ie=["getLoginUserInfo","getAuthToken"];let ne=new class{version="";isInit=!1;isWebviewPage=!1;anaSDKInit=!1;uniSDKInit=!1;weChatInit=!1;alipayInit=!1;iosCallBackList=[];C2ReceiveQueue=[];autoUpdate=!0;autoConfigMenuBtn=!0;weChatConfigReady=!1;constructor(e,t){this.version=e,this.isInit=!1,this.isWebviewPage=t,this.iosCallBackList=[],this.initModuleMethod(),this.initSDKAPI(),this.initDefaultConfig()}initModuleMethod(){n(L,this),n(J,this),n(W,this),n(K,this),n(R,this),n(j,this),n(U,this),n(Q,this),n(z,this),n(Z,this),n(G,this),n(V,this),n(te,this),n(ee,this)}init(t){e("init","SDK初始化任务执行处理"),w()?(N()&&this.initWebviewMsgFormat(),this.initSDKScriptFile(),this.trackSDKInit(t)):e("init","当前环境非浏览器环境,无需执行初始化动作","warn")}initSDKScriptFile(){e("initSDKScriptFile","挂载第三方SDK脚本文件"),this.initUNISDK(),C()?this.initWeChatSDK():this.initAliPaySDK()}initWebviewMsgFormat(){e("initWebviewMsgFormat","初始化被嵌套的页面消息通讯","log"),w()?(window.addEventListener("message",t=>{e("initWebviewMsgFormat","浏览器消息处理","log"),this.getMessageFromWebview(t)}),window.getMessageFromWebview=t=>{e("initWebviewMsgFormat","事件注入消息处理","log"),this.getMessageFromWebview(t,!0)}):e("initWebviewMsgFormat","该API仅支持在被webview嵌套的H5页面中使用","error","")}initUNISDK(){w()&&(M()||l("https://mobile.zwfw.hunan.gov.cn:8088/uni.webview.1.5.6.js","UNI").then(()=>{M()&&(this.uniSDKInit=!0,e("initUNISDK","UNI Webview SDK 挂载完成"))}))}initWeChatSDK(){if(e("initWeChatSDK","初始化weChat SDK"),w())return $()?(this.initWeChatConfig(),void e("initWeChatSDK","WeChat SDK已挂载完成,无需二次挂载")):void l("https://res.wx.qq.com/open/js/jweixin-1.6.0.js","微信").then(t=>{$()&&(this.weChatInit=!0,this.initWeChatConfig(),e("initWeChatSDK","WeChat SDK挂载完成"))})}initWeChatConfig(){this.weChatConfigReady||wx.request({url:`${O}/api/auth/wechat/v1/getJsapiTicket`,method:"POST",data:{url:window.location.href.split("#")[0]},success:t=>{const i=t?.data?.data;this.weChatConfigReady=!0,e("getLocationInWeChat","获取签名信息完成"),window?.wx?.config({appId:"wx44bc5d5e34ac0c01",timestamp:i?.timestamp,nonceStr:i?.noncestr,signature:i?.signature,jsApiList:["getLocation","openLocation","chooseImage","chooseFile","scanQRCode","previewImage","downloadImage"]}),this.checkLocationEvStation()},fail:t=>{e("initWeChatConfig",`获取签名信息失败,信息是:${JSON.stringify(t)}`)}})}initAliPaySDK(){e("initAliPaySDK","初始化Alipay SDK"),w()&&(A()||I()&&l("https://appx/web-view.min.js","支付宝").then(t=>{A()&&(this.alipayInit=!0,e("initAliPaySDK","Alipay SDK挂载完成"))}))}initSDKAPI(){S()&&(e("initSDKAPI","App的Webview环境,初始化C2调用链的回调函数"),this.initMobileBridgeGlobalConfig()),e("initSDKAPI","开始初始化SDK API"),k.forEach(t=>{const{eventName:i,moduleName:n,nativeEvName:o,isCustomEv:a}=t;if((n&&o||a)&&S()&&(e("initSDKAPI",`初始化C2调用链的回调函数:${i}`),this.checkMobileModuleBack(n,o,a)),!ie?.includes(i))try{this[i]=e=>new Promise(i=>{this.normalEvDataTransition(i,e,t)})}catch(t){e("initSDKAPI","执行API初始化挂载异常","error",t)}})}normalEvDataTransition(t,i={},n={}){const{eventName:o,description:a,reqDataFormat:s}=n||{},r=f();let c=i;if(s&&(c=s(i)),c)return S()?(e("normalEvDataTransition",`开始调用APP的嵌套H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.appH5SendMsgToApp(t,n,c)):y()?(e("normalEvDataTransition",`开始调用小程序/H5嵌套的H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.miniAppH5SendMsgToApp(t,o,c,a)):void(C()||I()?this.executeBrowserEvent(t,c,i,n):this.executeEvByNative(t,c,n));e(o,`给【${r}】APP发送【${a}】-【${o}】事件失败,请检查数据格式是否正确`,"error")}executeEvByNative(t,i,n){const{description:o,uniEvName:a,eventName:r,nativeResFormat:c}=n;try{e("executeEvByNative",`开始调用原生${o}的能力,API名称:${a},格式化前的参数信息:${JSON.stringify(i)}`),uni.sendNativeEvent(a,i,async i=>{e("executeEvByNative",`调用原生${o}的能力完成,结果:${JSON.stringify(i)}`,"log");let n=i;c&&(n=c(n),e("executeEvByNative",`调用原生${o}的能力完成,格式化后的结果:${JSON.stringify(n)}`,"log")),"fileDownload"===r&&i.isSuccess&&s(t,n),"getLocationInfo"!==r?"fileDownload"!==r&&s(t,n):uni.sendNativeEvent("System_getAppInfo",{},e=>{if(e.platform.toLowerCase().includes("harmony")){const e=((e,t)=>{const i=3.141592653589793,n=6378245,o=.006693421622965943;if(((e,t)=>t<72.004||t>137.8347||e<.8293||e>55.8271)(t,e))return[e,t];let a=b(e-105,t-35),s=D(e-105,t-35);const r=t/180*i;let c=Math.sin(r);c=1-o*c*c;const l=Math.sqrt(c);return a=180*a/(n*(1-o)/(c*l)*i),s=180*s/(n/l*Math.cos(r)*i),{lat:t+a,lng:e+s}})(i?.location?.longitude,i?.location?.latitude);n.location.longitude=e?.lng,n.location.latitude=e?.lat}s(t,n)})})}catch(i){t({isSuccess:!1,message:`${o}API执行失败,具体错误信息请查看控制台`}),e("executeEvByNative",`${o}API执行异常`,"error",i)}}initDefaultConfig(){e("initDefaultConfig","默认胶囊按钮配置执行初始化处理"),this.autoUpdate?this.resetMenuBtnConfig():e("initDefaultConfig","业务侧配置无需自动重置胶囊按钮,不至于页面切换事件监听")}}(F,N());w()&&(window.xybAgent=ne);export{ne as default};
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).xybAgent=t()}(this,function(){"use strict";const e=(e="",t="",i="log",n="")=>{const o={error:"错误",warn:"警告",info:"提示",log:"日志"}[i]||"日志",a=JSON.stringify(n);console.log(`\n=============🚀START - V${F} 🚀=============\n【事件名称】:${e} \n【日志类型】:${o} \n【日志信息】:${t} ${"error"===i?`【错误信息】:${JSON.stringify(a)}`:""} \n==============🚀END🚀==============`),console.log("")},t=(t={})=>{if("function"==typeof t)return e("deepClone","数据类型为function,无法执行深拷贝,请检查","error"),t;try{return JSON.parse(JSON.stringify(t))}catch(i){return e("deepClone","执行数据深拷贝异常","error",i),t}},i=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}),n=(e={},t={})=>{for(let i in e)t[i]=e[i]},o=(t=!1)=>{let i={route:null,path:null,options:{}};try{const e="function"==typeof getCurrentPages?getCurrentPages():[],n=[];for(let t in e)n.push({route:e[t].route,path:e[t].$page?.fullPath,options:e[t].$page?.options});const o=n?.length||0;if(o){const e=n[o-1],a=n[o-2];i=(t?a:e)||{}}}catch(t){e("getCurrentPagePath","获取页面信息失败","error",t)}return i},a=e=>{try{return JSON.parse(e)}catch(t){return e}},s=(t={},i={})=>{let n=i;try{n=a(i)}catch(t){e("formatResponseData","格式化失败","error",t),n=i}t(n)},r=e=>null==e,c=(e="",t="")=>{let i=t||window?.location?.href;if(i=decodeURIComponent(i),i?.includes(e)){let t=i.split(`${e}=`)[1];return t?.includes("&")&&(t=t.split("&")[0]),t}return""},l=(e="",t="")=>{if(e)return new Promise(t=>{const i=document.createElement("script");i.src=e,i.onload=t,document.head.appendChild(i)})},u=(t,i)=>{window?.my?.navigateTo({url:t,fail:t=>{e("openAlipayMiniApp","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})},d=(t,i)=>{window?.wx?.miniProgram?.navigateTo({url:t,fail:t=>{e("executeAuthFaceInBrowser","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})};let m={finished:!1,result:!1},g={finished:!1,result:!1},h={finished:!1,result:!1},v={finished:!1,result:!1};const p=()=>w()?navigator.userAgent.toLowerCase():"",f=()=>{const e=p();return/android/i.test(e)?"android":/iphone|ipad|ipod|mac/i.test(e)&&!window.MSStream?"ios":/windows phone/i.test(e)?"windows":"harmony"},w=()=>window&&document,y=()=>{if(v.finished)return v.result;if(v.finished=!0,!w())return v.result=!1,!1;const t=p();return v.result=t.includes("uni-app"),e("checkIsMiniAppBrowserEnv",`当前是否为小程序的浏览器环境:${v.result}`),v.result},N=()=>{const{finished:t,result:i}=m;return t?i:(m.result=(()=>{if(h.finished)return h.result;if(h.finished=!0,!w())return h.result=!1,!1;const t=p();return h.result=t.includes("xybwebcomponent")||t.includes("uni-app"),e("checkIsXybBrowserEnv",`当前是否为湘易办浏览器环境:${h.result}`),h.result})()||y(),m.finished=!0,e("checkIsWebviewEnv",`当前是否为Webview环境:${m.result}`),m.result)},S=()=>{const{finished:t,result:i}=g;if(t)return i;if(g.finished=!0,!w())return g.result=!1,!1;const n=p();return g.result=n.includes("xybwebcomponent")&&!n.includes("uniminiapp"),e("checkIsAppWebviewEnv",`当前是否为APP的Webview环境:${g.result}`),g.result},C=()=>w()?p().includes("micromessenger"):"mp-weixin"===f(),I=()=>w()?p().includes("alipay"):"mp-alipay"===f(),E=()=>!!uni&&(!!uni.sendNativeEvent&&("function"==typeof uni.sendNativeEvent||"undefined"!=typeof uni&&Object.prototype.hasOwnProperty.call(uni,"sendNativeEvent"))),M=()=>window?.uni&&"function"==typeof window?.uni?.webView?.postMessage,$=()=>"function"==typeof window?.wx?.chooseImage,A=()=>"function"===Boolean(window?.my)?.chooseImage,b=(e,t)=>{let i=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(t*PI)+40*Math.sin(t/3*PI))/3,i+=2*(160*Math.sin(t/12*PI)+320*Math.sin(t*PI/30))/3,i},D=(e,t)=>{let i=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(e*PI)+40*Math.sin(e/3*PI))/3,i+=2*(150*Math.sin(e/12*PI)+300*Math.sin(e/30*PI))/3,i},x=(t,i)=>{const n=52.35987755982988,o=t-.0065,a=i-.006,s=Math.sqrt(o*o+a*a)-2e-5*Math.sin(a*n),r=Math.atan2(a,o)-3e-6*Math.cos(o*n),c=s*Math.cos(r).toFixed(6),l=s*Math.sin(r).toFixed(6);return e("BaiduToGCJ02",`已完成百度坐标系转换成国测坐标系的转换,转换后的值:lng:${c}, lat:${l}`),{lng:c,lat:l}},P=t=>{const{dinateType:i,lat:n,lng:o,address:a}=t;return e("replaceCoordinate",`坐标转换开始:${i}`,"log"),x(t)},k=[{isCustomEv:!0,eventName:"authFace",uniEvName:"Auth_face",description:"人脸识别功能",nativeEvName:"faceAuth",reqDataFormat:t=>{e("authFace",`执行人脸验证,参数信息:${JSON.stringify(t)}`);const{name:i,certNo:n,appId:o,sign:a,created:s,nonce:r}=t;return i&&n&&o&&a&&s&&r?t:(e("authFace","缺少必要参数:name, certNo, appId, sign, created, nonce","error","缺少必要参数"),!1)},resDataFormat:e=>({isSuccess:Boolean(e),certifyId:e}),resErrorFormat:e=>"harmony"===f().toLowerCase()?{isSuccess:!1,errorMsg:e}:e},{isCustomEv:!0,eventName:"startNavigation",uniEvName:"Start_navigation",description:"目的地导航",nativeEvName:"start_navigation",reqDataFormat:t=>{let i={};const{dinateType:n,lat:o,lng:a,address:s,destinationLatitude:r,destinationLongitude:c}=t;return r&&c?t:(e("replaceCoordinate",`坐标系值:LAT:${o},LNG:${a}`,"log"),i=n&&"GCJ02"!==n?P(t):{destinationLatitude:o,destinationLongitude:a,destinationName:s},e("replaceCoordinate",`转换后值:LAT:${i.destinationLatitude},LNG:${i.destinationLongitude}`,"log"),i)}},{isWindowEv:!0,eventName:"getLoginStatus",uniEvName:"Auth_checkLogin",description:"获取登录状态",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>{const i=t(e);return{logined:1===Number(i?.isLogin)}},resErrorFormat:()=>({logined:!1})},{isWindowEv:!0,eventName:"getLoginUserInfo",uniEvName:"Auth_getUserInfo",description:"获取登录用户数据信息",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>t(e),resErrorFormat:()=>({isSuccess:!1})},{isCustomEv:!0,eventName:"getAuthToken",uniEvName:"Auth_getToken",description:"获取授权token",nativeEvName:"get_token",resDataFormat:e=>{try{const i=t(e);return{token:i?.token,isSuccess:Boolean(i?.token)}}catch(t){return{token:e?.token,isSuccess:Boolean(e?.token)}}},resErrorFormat:()=>({isSuccess:!1})},{isWindowEv:!0,eventName:"getAccessLink",uniEvName:"Auth_getAccessLink",nativeEvName:"CallNativeMethodGetAccessLink",description:"获取授权链接",resDataFormat:e=>"ios"===f().toLowerCase()?{isSuccess:!0,accessLink:e}:t(e),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"image",eventName:"chooseImg",uniEvName:"Image_choose",nativeEvName:"chooseImage",browserEvName:"chooseImage",description:"选择本地图片",reqDataFormat:e=>{const{count:t,sizeType:i,sourceType:n,isCircleCrop:o}=e||{};return{count:t||9,sizeType:i||["original","compressed"],sourceType:n||["album"],isCircleCrop:o||!1}},resDataFormat:e=>t(e),bResDataFormat:e=>{const{tempFiles:t}=e,i=[];for(let e in t){const{name:n,path:o,size:a,type:s}=t[e];i.push({name:n,path:o,size:a,type:s})}return{resultObj:i,isSuccess:!0,message:"选择图片功能操作完成"}}},{moduleName:"image",eventName:"imgPreview",uniEvName:"Image_preview",nativeEvName:"previewImage",browserEvName:"previewImage",description:"执行图片预览"},{moduleName:"image",eventName:"imgUpload",uniEvName:"Image_upload",nativeEvName:"uploadImage",description:"执行图片上传",resDataFormat:e=>t(e),resErrorFormat:e=>e},{eventName:"imgDownload",uniEvName:"Image_download",nativeEvName:"",browserEvName:"downloadImage",description:"执行图片下载"},{eventName:"fileUpload",uniEvName:"File_upload",nativeEvName:"",description:"执行文件上传"},{moduleName:"file",eventName:"fileDownload",uniEvName:"File_download",nativeEvName:"downloadFile",description:"执行文件下载",resDataFormat:e=>({isSuccess:Boolean(e),resultObj:{path:e}})},{moduleName:"file",eventName:"filePreview",uniEvName:"File_preview",nativeEvName:"previewFile",description:"执行文件预览"},{moduleName:"file",eventName:"openLocalFile",uniEvName:"File_openLocal",nativeEvName:"openLocalFile",description:"执行打开本地文件"},{moduleName:"file",eventName:"chooseLocalFile",uniEvName:"File_chooseLocal",nativeEvName:"chooseLocalFile",browserEvName:"chooseFile",description:"选择本地文件",resDataFormat:e=>t(e)},{moduleName:"file",eventName:"openThirdFile",uniEvName:"File_openThirdParty",nativeEvName:"openFileWithThirdParty",description:"执行打开第三方文件"},{eventName:"openApp",uniEvName:"Util_openApp",nativeEvName:"",description:"打开APP"},{isCustomEv:!0,eventName:"openXybApp",uniEvName:"Util_openXYBMiniApp",nativeEvName:"jumpToMiniApp",description:"打开湘易办融合APP小程序",reqDataFormat:e=>{if(S()){const{pageUrl:t}=e;return{...e,path:t}}return e}},{eventName:"postMsgToOtherApp",uniEvName:"Util_postMessageToXYBMiniApp",nativeEvName:"",description:"发送消息给其他小程序"},{isWindowEv:!0,eventName:"scanCode",uniEvName:"Scan_code",description:"扫描二维码",browserEvName:"scanQRCode",nativeEvName:"CallNativeMethodScanQRCode",resDataFormat:e=>({text:e}),bReqDataFormat:e=>({...e,needResult:1}),bResDataFormat:e=>({text:e?.resultStr||""})},{moduleName:"system",eventName:"getAppInfo",nativeEvName:"getAppInfo",description:"获取应用信息",uniEvName:"System_getAppInfo",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"copyToClipboard",uniEvName:"Util_clipboardData",nativeEvName:"clipboardData",description:"复制内容到剪切板",reqDataFormat:e=>({text:e}),resDataFormat:e=>S()?{isSuccess:Boolean(e)}:{isSuccess:!0}},{moduleName:"util",eventName:"getCacheSize",uniEvName:"Util_getCacheSize",nativeEvName:"getCacheSize",description:"获取缓存大小",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"clearCache",uniEvName:"Util_clearCache",nativeEvName:"clearCache",description:"执行缓存清除",resDataFormat:()=>({isSuccess:!0}),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"telephone",eventName:"callPhone",uniEvName:"Util_callDesignateNumber",nativeEvName:"call",description:"拨打电话",browserEvName:"makePhoneCall",reqDataFormat:e=>"object"==typeof a(e)?a(e):S()?{phoneCode:"+86",phoneNumber:String(e).replace("+86","")}:{text:e}},{eventName:"forbidScreenShot",uniEvName:"Util_forbidScreenShot",nativeEvName:"",description:"执行禁止截屏"},{eventName:"setScreenLight",uniEvName:"Util_setScreenLight",nativeEvName:"",description:"设置屏幕是否常亮",reqDataFormat:e=>({idleTimerValue:e})},{eventName:"sendMatterId",uniEvName:"Param_MatterID",nativeEvName:"",description:"执行页面事件ID上报",reqDataFormat:e=>({matterID:e})},{isWindowEv:!0,description:"获取位置信息",eventName:"getLocationInfo",uniEvName:"Util_getLocationInformation",nativeEvName:"CallNativeMethodGetLocationInformation",resDataFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),f().toLowerCase(),{isSuccess:!0,location:o}},nativeResFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),{isSuccess:!0,location:o}},resErrorFormat:()=>({isSuccess:!1,location:{}})},{eventName:"checkPermission",uniEvName:"Auth_matterHandleAuthority",nativeEvName:"",description:"检查事项权限",reqDataFormat:e=>({matterCode:e})},{eventName:"showComment",uniEvName:"Util_jumpToComment",nativeEvName:"",description:"打开评价弹窗"},{isWindowEv:!0,description:"打开微信小程序",eventName:"openWechatMiniApp",uniEvName:"Util_openWechatMiniProgram",nativeEvName:"CallNativeMethodJumpToWechatMiniProgram",reqDataFormat:e=>{if(S()){const t={};for(let i in e)t[i]=String(e[i]);return JSON.stringify(t)}return e}},{isWindowEv:!0,description:"打开支付宝小程序",eventName:"openAliPayMiniApp",uniEvName:"Util_openAlipayMiniProgram",nativeEvName:"CallNativeMethodJumpToAliPay",reqDataFormat:e=>S()?JSON.stringify(e):e},{eventName:"showMenuPanel",uniEvName:"menu_present",nativeEvName:"",description:"显示菜单面板"},{isCustomEv:!0,eventName:"addCalendarEvent",uniEvName:"Util_addCalendarEvent",nativeEvName:"addCalendarEvent",description:"添加日历日程"},{isCustomEv:!0,eventName:"deleteCalendarEvent",uniEvName:"Util_deleteCalendarEvent",nativeEvName:"deleteCalendarEvent",description:"删除日历日程"},{isCustomEv:!0,eventName:"queryCalendarEvent",uniEvName:"Util_queryCalendarEvent",nativeEvName:"queryCalendarEvent",description:"查询日历日程"}],F="0.0.23",O="https://xybfw.zwfw.hunan.gov.cn/gateway3",T={custom(t,i){e("custom",`通过custom调用${t}事件`);const n=k?.find(e=>e?.nativeEvName===t||e?.eventName===t);return new Promise((e,o)=>{const{reqDataFormat:a}=n||null,s=n||{isCustomEv:!0,moduleName:"custom",eventName:"call",description:"通过Custom调用的C2事件",nativeEvName:t};if(!S())return void e({code:-1,msg:"非APP环境的Webview环境,不支持该功能"});const r=a?a(i):i;this.executeSendMsgToApp({moduleName:"custom",eventName:"call",actionName:t,isCustomEv:!0,dataInfo:r,resolveInfo:e,evConfig:s})})}},L=e=>Number(e)>9?e:`0${e}`,B=()=>{const e=new Date;return`${e.getFullYear()}-${L(e.getMonth()+1)}-${L(e.getDate())} ${L(e.getHours())}:${L(e.getMinutes())}:${L(e.getSeconds())}`},J={trackStack:[],anaSDKLoadTimes:0,locationInfo:{},isProdEnv:!1,track(t="",n={}){if(t){if(n)return w()&&!this.anaSDKInit?(this.trackStack.push({id:i(),eventID:t,eventPro:n}),void e("track","埋点上报插件初始化未完成,本次数据在插件初始化后自动上报","log")):void this.executeTrack(t,n);e("track","埋点数据上报失败","error","请传入埋点数据")}else e("track","埋点数据上报失败","error","请传入埋点事件")},async executeTrack(t="",i={}){if("object"==typeof t)return void await this.track(t?.eventID,t?.eventPro);const n=await this.initTrackParams(i);if(e("track",`执行埋点数据上报,事件名称:${t},事项编码:${n.code},是否上报到生产环境:${this.isProdEnv},完整埋点数据:${JSON.stringify(n)}`,"log"),w()&&xybAgent?.AnalysysAgent)return e("track","通过浏览器插件执行埋点数据上报","log"),void window.xybAgent.AnalysysAgent.track(t,n);if(E())try{e("track",`埋点数据:${JSON.stringify(n)},埋点ID:${t}`,"log"),uni.sendNativeEvent("Analysis_common",{eventID:t,eventPro:n})}catch(t){e("track","执行数据埋点功能异常","error",t)}},trackSDKInit(t){return new Promise((i,n)=>{w()||(e("initTrack","非浏览器环境无需使用init执行初","error"),i(!0)),this.anaSDKInsert?this.configAnaSDK(t,i):l("https://mobile.zwfw.hunan.gov.cn:8088/AnalysysAgent_JS_SDK.min.js","极光").then(()=>{window.AnalysysAgent&&(xybAgent.AnalysysAgent=window.AnalysysAgent,this.anaSDKInsert=!0,this.configAnaSDK(t,i))})})},configAnaSDK(t,i){const n="800c298f0c42c94c",o="40d556c15f872084";let a=location?.host?.includes("hunan.gov.cn")?n:o;if("object"==typeof t)a=o;else{const e={production:n,development:o},i=[n,o];(e[t]||i.includes(t))&&(a=e[t]?e[t]:t)}this.isProdEnv=a===n,e("configAnaSDK",`配置信息:${JSON.stringify(t)},是否为生产环境:${this.isProdEnv},上报的key值:${a}`),w()?(window.xybAgent.AnalysysAgent&&(window.xybAgent.AnalysysAgent.init({appkey:a,uploadURL:"https://mobile.zwfw.hunan.gov.cn:8088/aurora-api"}),e("configAnaSDK","xybAgent已初始化完成,可正常执行埋点操作","log"),this.anaSDKInit=!0,this.isInit=!0,this.checkTrackStack(),i(!0)),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes<10&&setTimeout(()=>this.trackSDKInit(i),300),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes>=10&&(e("configAnaSDK","xybAgent初始化失败","error","请检查app key、uploadURL是否正确"),i(!1))):i(!1)},async initTrackParams(e={}){const{code:t,name:i,aff_city_code:n,aff_city_name:o,unit_code:a,area_code:s,unit_name:r,is_finish:c,category:l,user_id:u,miniAppCode:d,$url_domain:m}=e,g=this.getVisitSource(),h=this.getPageSource(),v=await this.getPositionInfo();return{code:t||void 0,name:i||void 0,aff_city_code:n||void 0,aff_city_name:o||void 0,unit_code:a||void 0,area_code:s||void 0,unit_name:r||void 0,is_finish:c||void 0,category:l||void 0,user_id:u||void 0,miniAppCode:d||void 0,$url_domain:m||void 0,curr_time:B(),source:g,page_source:h,location:v}},getVisitSource(){if(!w()){const e=uni?.getSystemInfoSync(),{uniPlatform:t}=e||{};return"mp-weixin"===t?"wx":"mp-alipay"===t?"alipay":"app"}return C()?"wx":I()?"alipay":"app"},checkTrackStack(){e("checkTrackStack","执行埋点数据堆栈检测","log");t(this.trackStack).forEach(t=>{const{eventID:i,eventPro:n,id:o}=t;e("checkTrackStack",`执行id值为${o} 的埋点数据再次上报`,"log"),this.track(i,n);const a=this.trackStack.findIndex(e=>e.id===o);a>-1&&this.trackStack.splice(a,1)})},getPageSource(){let e=null;e=w()?location.href:decodeURIComponent(o().path);const t=e?.includes("source=");if(!t)return"click";const i=e.split("source=")[1];let n="click";return n=i.includes("&")?i.split("&")[0]:i,["copy","share","click","search"].includes(n)?n:"click"},async getPositionInfo(){if(!this.locationInfo?.province)try{const{location:e}=await this.getLocationInfo()||{};this.locationInfo=e||""}catch(t){e("getLocationInfo","获取位置信息异常","error",t),this.locationInfo={}}return JSON.stringify(this.locationInfo)}},W={initMobileBridgeGlobalConfig(){const t=f();e("initMobileBridgeGlobalConfig",`开始初始化移动端桥链接配置,访问设备类型:${t}`),window.c2={},"ios"===t&&this.initIOSCallbackEvConfig(),"android"===t&&this.initAndroidCallbackEvConfig(),e("initMobileBridgeGlobalConfig","初始化移动端桥链接配置完成"),window.CreatorJsBridge=window.c2},initIOSCallbackEvConfig(){try{const t=this;window.c2.iOS={},window.c2.iOS.callJS=function(){window?.c2.iOS?.callJSCallback||(window.c2.iOS.callJSCallback={}),e("initIOSCallbackEvConfig",`开始处理IOS设备回调事件,回调数据:${JSON.stringify(arguments)}`),t.IOSCallbackEvFormat(arguments[0])}}catch(t){e("initIOSCallbackEvConfig","初始化IOS回调事件配置异常","error",t)}},initAndroidCallbackEvConfig(){window.c2.sendDataWarpToWeb=(e,t,i)=>{e(i)}},IOSCallbackEvFormat(i){const{returnValue:n,funcName:o}=i;let s=this.base64Decode(n);s=a(s),e("IOSCallbackEvFormat",`IOS设备回调事件处理开始,回调数据:${JSON.stringify(s)}, 格式:${typeof s}`);const r=o.split("_a")[0],c=o.replace(r,""),l=this.iosCallBackList.find(e=>e.id===r);if(!l)return;const{resolveInfo:u,configInfo:d}=l,{resDataFormat:m,resErrorFormat:g}=d;if(c.includes("onFail")&&g)return s=g({isSuccess:!1,errorMsg:t(n)}),void u(s);m&&(s=m(s)),e("IOSCallbackEvFormat",`IOS设备回调事件处理完成,返回数据:${JSON.stringify(s)}`),u(s);const h=this.iosCallBackList.findIndex(e=>e.id===r);this.iosCallBackList.splice(h,1)},base64Decode(e){let t,i,n,o,a,s,r,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u<e.length;)o=c.indexOf(e.charAt(u++)),a=c.indexOf(e.charAt(u++)),s=c.indexOf(e.charAt(u++)),r=c.indexOf(e.charAt(u++)),t=o<<2|a>>4,i=(15&a)<<4|s>>2,n=(3&s)<<6|r,l+=String.fromCharCode(t),64!=s&&(l+=String.fromCharCode(i)),64!=r&&(l+=String.fromCharCode(n));return l=this._utf8_decode(l),l},_utf8_decode(e){let t="",i=0,n=0,o=0,a=0;for(;i<e.length;)n=e.charCodeAt(i),n<128?(t+=String.fromCharCode(n),i++):n>191&&n<224?(a=e.charCodeAt(i+1),t+=String.fromCharCode((31&n)<<6|63&a),i+=2):(a=e.charCodeAt(i+1),o=e.charCodeAt(i+2),t+=String.fromCharCode((15&n)<<12|(63&a)<<6|63&o),i+=3);return t},checkMobileModuleBack(e,t,i){const n=i?"custom":e,o=`${i?"call":t}Callback`;window.c2.hasOwnProperty(n)||(window.c2[n]={}),window.c2[n].hasOwnProperty(o)||(window.c2[n][o]={})}};let _=null,q=null,H=null;E()?(_=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-RUM"):null,q=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-Tracer"):null,H=uni&&uni?.getSystemInfoSync?uni.getSystemInfoSync().platform:null):e("请求插件初始化","未找到uni对象","warn");const K={defaults:{headers:{},baseURL:""},interceptor:{request:null,response:null},requestOb:!1,request(i={}){return new Promise((n,o)=>{let a=t(i);if(!this.interceptor.request||"function"!=typeof this.interceptor.request||i.ignore||(a=this.interceptor.request(i),a))if(E()&&this.requestOb&&Boolean(_)&&Boolean(q))try{e("request","走服务监控平台的请求配置","log"),this.executeCloudObRequest(a,n,o)}catch(t){e("request","走服务监控平台的请求配置失败","error",t)}else e("request","走uni的请求配置","log"),this.executeNormalRequest(a,n,o);else n(!1)})},executeCloudObRequest(t,n,o){let a=i();const s=this.checkCloudObRequestHeader(t,a);if(!s)return;const{traceHeader:c,filter:l}=s;let u,d,m;_.startResource({key:a}),uni.request({url:`${this.defaults.baseURL}${t.url}`,method:t.method,header:c,data:t.data,timeout:t.timeout,withCredentials:t?.withCredentials||void 0,success:i=>{if(e("executeCloudObRequest",`接口:${t.url},请求成功`,"log"),l||(u=i.header,d=i.data.toString(),m=i.statusCode),r(t.success)||t.success(i),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(i);return void n(e)}n(i)},fail:i=>{e("executeCloudObRequest",`接口:${t.url},请求失败`,"error",i),l||(d=i?.errMsg),r(t?.fail)||t.fail(i),o(i)},complete:()=>{if(e("executeCloudObRequest",`接口:${t.url},请求完成`,"log"),!l){e("executeCloudObRequest",`无filter配置的数据信息::::key值:${a};URL地址:${t.url};`),_.stopResource({key:a});const i={url:`${this.defaults.baseURL}${t.url}`,httpMethod:t.method,requestHeader:c,responseHeader:u,responseBody:d,resourceStatus:m};_.addResource({key:a,content:i})}Boolean(t?.complete)&&t?.complete()}})},checkCloudObRequestHeader(t,i){let n;r(t?.filterPlatform)?(e("executeCloudObRequest",`options.filterPlatform:${t.filterPlatform}`,"log"),n=!1):(n=t?.filterPlatform?.includes(H),e("executeCloudObRequest",`platform:${t.filterPlatform}`,"log")),e("executeCloudObRequest",`rum:${_},tracer:${q}`,"log");let o={};return n||(o=q?.getTraceHeader({key:i,url:t.url})),e("executeCloudObRequest",`是否读取到【tracer】插件配置:${Boolean(q)},是否读取到【rum】插件配置:${Boolean(_)}`,"log"),_&&q?(o=Object.assign({},o,t.header),o=Object.assign({},o,this.defaults.headers),{traceHeader:o,filter:n}):(e("executeCloudObRequest","请配置服务监控平台原生插件","log"),!1)},executeNormalRequest(t,i,n){const{url:o,header:a,data:s,method:r}=t||{},c=Object.assign({},this.defaults.headers,a);uni.request({url:`${this.defaults.baseURL}${o}`,header:c,data:s,method:r,withCredentials:t?.withCredentials||void 0,success:n=>{if(e("normalRequest",`接口:${o},请求成功`,"log"),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(n);return void i(e)}i(n)},fail:t=>{e("normalRequest",`接口:${o},请求异常`,"error",t),n(t)}})}},R={resetMenuBtnConfig(){e("hideNativeBtn","隐藏原生APP分享、评价按钮","log");const t={share:{show:!1},comment:{show:!1},favorite:{show:!0}};try{this.menuBtnConfig(t),this.pageChangeEv(i=>{if(!this.autoUpdate)return void e("resetMenuBtnConfig","业务侧设置不自动重置胶囊按钮,中断配置动作");const{options:n}=i,{xybModuleCode:o}=n||{};if(o&&this.autoConfigMenuBtn)return e("resetMenuBtnConfig",`页面拦截事件生效 自动设置原生APP分享、评价按钮,配置信息:${JSON.stringify(i)}`,"log"),void this.menuBtnConfig({share:{show:!0,code:o,type:4},comment:{show:!0,code:o,type:4},favorite:{show:!0}});e("resetMenuBtnConfig","页面拦截事件生效 自动重置原生APP分享、评价按钮配置信息","log"),this.menuBtnConfig(t)})}catch(t){e("resetMenuBtnConfig","配置APP的胶囊按钮清单显示失败,请检查参数是否正确","error",t)}},pageChangeEv(t){if(!uni)return;["navigateTo","redirectTo","switchTab","reLaunch","navigateBack","onBackPress"].forEach(i=>{try{uni.addInterceptor(i,{invoke(n){try{const{url:a}=n;let s={options:{},path:null,route:null},r=decodeURIComponent(a);s.path=r,s.route=r.split("?")[0],r?.includes("xybModuleCode=")&&(console.log(`🚀当前页面路径信息:${r}`),s.options.xybModuleCode=c("xybModuleCode",r)),r?.includes("?")&&(s.route=r.split("?")[0]),i?.includes("Back")&&(s=o(i?.includes("Back"))),e("pageChangeEv",`页面路径发生了变化,当前页面路径:${s.path}`,"log"),"function"==typeof t&&t(s)}catch(t){console.log("🚀 错误信息:::::",t),e("pageChangeEv","拦截路径变化时发生了异常","error",t)}return!0}})}catch(t){e("pageChangeEv","执行页面变化拦截异常","error",t)}})},menuBtnConfig(t={}){e("menuBtnConfig",`配置APP胶囊按钮清单显示,配置信息:${JSON.stringify(t)}`,"log");let i=!0;for(let n in t){if("object"!=typeof t[n]){i=!1,e("menuBtnConfig","配置参数错误","error","请传入一个Object配置数据");break}}if(i)if(N())this.miniAppH5SendMsgToApp(null,"menuBtnConfig",t,"配置APP的胶囊按钮清单显示");else if(!w()&&uni&&uni?.sendNativeEvent)try{e("menuBtnConfig","开始执行配置APP胶囊按钮清单显示","log"),uni?.sendNativeEvent("Util_MiniAppConfigMenu",t)}catch(t){e("menuBtnConfig","配置APP的胶囊按钮清单显示时发生异常","error",t)}else e("menuBtnConfig","配置APP胶囊按钮清单显示功能无法在非UNI环境运行","log")}},U={executeBrowserEvent(t,i={},n={},o={}){const a=C()?"微信小程序":I()?"支付宝小程序":"浏览器",{eventName:s,description:r,browserEvName:c,bResDataFormat:l,bReqDataFormat:u,reqDataFormat:d}=o,m="startNavigation"===s?n:i;e("normalEvDataTransition",`开始调用${a}嵌套H5的能力,事件名称:${s},入参:${JSON.stringify(m)},配置信息:${JSON.stringify(o)}`);const g={authFace:"executeAuthFaceInBrowser",getLocationInfo:"executeGetLocationInBrowser",startNavigation:"startNavigationInBrowser",fileUpload:"executeFileUploadInBrowser",chooseImg:"executeImageChooseInBrowser"}[s];if(g)return void this[g](t,m,o);if(!c)return void t({isSuccess:!1,code:-1,message:`非常抱歉,${r}功能无法在当前环境中使用`});const h=d?d(i):u?u(i):i;I()||C()?this.executeMPBrowserEvent(t,c,i,s):this.executeNativeBrowserEv(t,c,h,l)},executeMPBrowserEvent(i,n,o,a){e("executeMPBrowserEvent",`配置信息:${JSON.stringify(o)}`);let s=t(o);e("executeMPBrowserEvent",`配置信息:${JSON.stringify(s)}`),s.success=t=>{e("executeMPBrowserEvent",`执行:${a}事件完成,返回结果:${JSON.stringify(t)}`)},s.fail=t=>{e("executeMPBrowserEvent",`执行:${a}事件失败,错误信息:${JSON.stringify(t)}`)},e("executeWeChatBrowserEv",`${a},配置信息:${JSON.stringify(s)}`),C()?window.wx[n](s):window.my[n](s)},executeNativeBrowserEv(e,i){let n=t(i);n.success=function(e){console.log(e)},n.fail=function(e){console.error(e)},window.uni[e](n)}},G={executeAuthFaceInBrowser(t,i={},n={}){const o=function(i){let n=c("faceKey",window?.location?.href);if(e("executeAuthFaceInBrowser",`获取到的faceKey参数值::::${n}`),!window?.location?.href.includes("faceKey"))return;const a={isSuccess:Boolean(n),certifyId:`MINI_${n}`,portrait:null,errorMsg:Boolean(n)?null:"人脸验证失败,请检查参数信息"};window.removeEventListener("hashchange",o),setTimeout(()=>{e("executeAuthFaceInBrowser",`执行验证结果回抛给业务侧:${JSON.stringify(a)}`),t(a)},100)};window.addEventListener("hashchange",o);const a=encodeURIComponent(window.location.href),{certNo:s,name:r}=i;let l=`/pages/sdk/sdk?redirectUrl=${a}&type=authFace&idCard=${encodeURIComponent(s)}&name=${r}`;C()?d(l,t):I()?u(l,t):(e("executeAuthFaceInBrowser","当前环境不支持人脸识别","warning"),t({isSuccess:!1,code:-1,message:"当前环境下不支持人脸识别验证功能"}))}},j={locationCheck:!1,locationEvList:[],checkLocationEvStation(){this.locationEvList.forEach(e=>{this.getLocationInWeChat(e.resolveInfo,e.id)})},executeGetLocationInBrowser(t){e("executeGetLocationInBrowser","在微信/支付宝浏览器中获取定位信息"),I()?this.getLocationInAliPay(t):C()?this.getLocationInWeChat(t):t({code:-1,isSuccess:!1,message:"当前环境无法支持位置信息获取,请检查是否为湘易办相关环境"})},getLocationInWeChat(t,n){return this.weChatConfigReady?this.locationCheck?(e("getLocationInWeChat","已缓存签名信息,直接调用对应API获取位置信息"),void this.executeGetLocationInfoData(t,n)):void this.executeGetLocationInfoData(t,n):(e("getLocationInWeChat","微信SDK尚未初始化完毕,先行进行堆栈,待微信SDK初始化后,统一调用"),void this.locationEvList.push({id:i(),resolveInfo:t}))},executeGetLocationInfoData(t,i){e("executeGetLocationInfoData","在微信环境中获取位置信息"),window?.wx?.getLocation({type:"wgs84",success:n=>{this.locationCheck=!0,e("executeGetLocationInfoData",`调用微信获取位置信息完成,结果是:${JSON.stringify(n)}`),this.executeGetDetailLocation(t,n,i)},fail:i=>{t({isSuccess:!1,message:"调用微信获取位置信息失败,请联系管理员"}),e("executeGetLocationInfoData",`调用微信获取位置信息失败,信息是:${JSON.stringify(i)}`)}})},executeGetDetailLocation(t,i,n){wx.request({url:`${O}/api/auth/baidumap/v1/reverse_geocoding?location=${i.latitude},${i?.longitude}`,method:"GET",success:i=>{const{data:o}=i?.data||{},a=this.formatLocationData(o);if(t(a),n){e("executeGetDetailLocation",`已成功获取到定位信息,清除该事件的堆栈:${n}`);const t=this.locationEvList.findIndex(e=>e.id===n);-1!==t&&this.locationEvList.splice(t,1)}},fail:t=>{e("executeGetDetailLocation","获取位置信息失败","error",JSON.stringify(t))}})},formatLocationData(t={}){const i=t?.result||{},{lng:n,lat:o}=i?.location||{},{cityCode:a,formatted_address:s}=i||{},{district:r,city:c,country:l,adCode:u,province:d}=i?.addressComponent||{},m=x(n,o),g={isSuccess:!0,location:{district:r,city:c,longitude:m?.lng,country:l,cityCode:a,adCode:u,address:s,latitude:m?.lat,province:d}};return e("executeGetDetailLocation",`获取位置信息调用完成,结果:${JSON.stringify(g)}`),g},getLocationInAliPay(t){window?.my?.getLocation({type:"wgs84",success:i=>{e("getLocationInAliPay",`支付宝下获取位置信息完成:::${JSON.stringify(i)}`),this.executeGetDetailLocation(t,i)},fail:i=>{e("getLocationInAliPay",`获取位置信息失败,错误信息:${JSON.stringify(i)}`,"error",i),t({isSuccess:!1,message:"获取位置信息失败,请联系湘易办相关技术人员"})}})}},z={executeImageChooseInBrowser(t,i,n){const{count:o,sizeType:a,sourceType:s}=i,{bResDataFormat:r}=n;if(C()||I()){const i={count:o||9,mediaType:["image"],sizeType:a||["original","compressed"],sourceType:s||["album"],success:i=>{i?.success&&t(r?r(i):i),e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行完毕,结果:${JSON.stringify(i)}`)},fail:t=>{e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行失败,结果:${JSON.stringify(t)}`)}};return void(I()?window.my.chooseImage(i):window.wx.chooseImage(i))}t({isSuccess:!1,code:-1,message:"目前环境暂不支持,敬请期待"})}},V={navigationCheck:!1,startNavigationInBrowser(t,i={}){const n=encodeURIComponent(window?.location?.href),{lat:o,lng:a,address:s,name:r,dinateType:c}=i;let l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${o}&longitude=${a}&address=${s}&name=${r}`;if(c&&"GCJ02"!==c){const e=P(i),{destinationLatitude:t,destinationLongitude:o}=e;l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${t}&longitude=${o}&address=${s}&name=${r}`}e("startNavigationInBrowser",`跳转目标URL:${l}`),C()?d(l,t):I()?u(l,t):(e("startNavigationInBrowser","导航功能无法在当前环境下执行"),t({isSuccess:!1,code:-1,message:"导航功能无法在当前环境下执行,请检查是否为微信/支付宝小程序的浏览器环境中"}))}},Q={wvInfo:null,isHarmony:!1,isCheckDevice:!1,async initMessage(...t){const i=t[0];await this.checkDeviceInfo(),await this.initVMInfo(t[2]),w()?window.addEventListener("message",t=>{e("initMessage",`浏览器webview接收到的消息内容,${JSON.stringify(t)}`,"log"),this.getMsgFromH5(t)}):(e("initMessage",`非浏览器中的webview接收到的消息内容,${JSON.stringify(i)}`,"log"),this.getMsgFromH5(i))},checkDeviceInfo(){this.isCheckDevice||(this.isCheckDevice=!0,uni.sendNativeEvent("System_getAppInfo",{},e=>{this.isHarmony=e?.platform?.toLowerCase().includes("harmony")}))},initVMInfo(t){if(!this.wvInfo)if(this.isHarmony)this.wvInfo=uni.createWebviewContext("webview",t);else try{this.wvInfo=t,t?.$scope?.$getAppWebview()&&(this.wvInfo=t.$scope.$getAppWebview().children()[0])}catch(t){e("initMessage","初始化消息模块,是否包含wvInfo:"+typeof this.wvInfo?.evalJS)}},getMsgFromH5(t={}){let i=this.getMsgDataFromH5(t);const{origin:n}=t||{},{href:o}=location||{};if(w()&&o?.includes(n))return!1;const{isH5Send:a,methodName:s,methodData:r}=i||{};return!!a&&(s?null==r?(e("getMsgFromH5","请传入需要执行的事件数据","warn"),!1):(e("getMsgFromH5",`需要执行的事件名称【${s}】,需要执行的事件数据【${JSON.stringify(r)}】,是否为H5发送的消息【${a}】`,"log"),void(this[s]?this.executeH5MethodName(s,i):e("getMsgFromH5",`【${s}】事件不存在`,"warn"))):(e("getMsgFromH5","请传入需要执行的事件名称","warn"),!1))},executeH5MethodName(t,i){const{msgId:n,methodData:o}=i;try{const i=this[t].toString();if(e("executeH5MethodName",`【${t}】方法定义:${i}`,"log"),i.includes("Promise"))return void this[t](o).then(i=>{e("executeH5MethodName",`${t}方法执行结果:${JSON.stringify(i)}`,"log");let o=i;try{o=JSON.parse(i)}catch(t){e("executeH5MethodName","强制给数据进行序列化失败","error",t)}this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:o,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}).catch(i=>{e("executeH5MethodName",`${t}方法执行失败`,"error",i),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法失败,具体错误信息,请查看控制台`})});this[t](o),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}catch(i){e("getMsgFromH5",`${t}方法执行失败`,"error",i)}},postMsgToH5(t){const i=JSON.stringify(t);if(e("postMsgToH5",`消息内容:${i}`,"log"),w()){e("postMsgToH5","父页面运行在浏览器","log");document.querySelector("iframe").contentWindow.postMessage(JSON.stringify(i),"*")}else try{e("postMsgToH5","父页面运行在非浏览器","log"),this.wvInfo.evalJS(`getMessageFromWebview('${i}')`)}catch(t){e("postMsgToH5","执行浏览器的webview回传异常","error",t)}},getMsgDataFromH5(t){let i=null;const{data:n}=t;try{i=w()?n?.data?.arg?n?.data?.arg:n?.data?n.data:n:t.detail?.data[0]}catch(t){return e("getMsgDataFromH5","处理消息内容时发生异常","error",t),!1}return e("getMsgDataFromH5",`获取到的消息内容:${JSON.stringify(i)}`,"log"),i}},X=(t,i,n)=>{if(e("_parseFunction",`${JSON.stringify(t)}`),"function"==typeof t)return n[i]=t,void(t="[Function]::"+i);if("object"!=typeof t)return;let o=null;for(let e in t)switch(typeof t[e]){case"object":o=i?i+"_"+e:e,X(t[e],o,n);break;case"function":o=i?i+"_"+e:e,n[o]=t[e],t[e]="[Function]::"+o}},Y=e=>{let t=0;return"string"==typeof e?t=1:"number"==typeof e?t=2:"boolean"==typeof e?t=3:"function"==typeof e?t=4:e instanceof Array?t=6:"object"==typeof e&&(t=5),t},Z={appH5SendMsgToApp(e,t={},i={}){const{isWindowEv:n,moduleName:o,nativeEvName:a,isCustomEv:s}=t;if(n)return void this.h5SendMsgToAppByWindow(e,t,i);const r=s?"custom":o,c=s?"call":a;this.executeSendMsgToApp({resolveInfo:e,moduleName:r,eventName:c,actionName:a,dataInfo:i,isCustomEv:s,evConfig:t})},executeSendMsgToApp(i={}){const{moduleName:n,eventName:o,actionName:a,dataInfo:s,resolveInfo:r,isCustomEv:c,evConfig:l}=i||{},{description:u}=l,d=this;try{let i={};if(("object"==typeof s?Object.keys(s):[]).length>0&&(i=t(s)),c){const n=t(i);e("webviewSendMsgToApp",`${u}功能在是通过custom.call的方式调用,需要重新处理入参`),i.params=n,i.action=a}e("webviewSendMsgToApp",`${u}的完整参数:${JSON.stringify(i)}`),this.initEventCallbackEv(r,i,l);const m=function(){return d.formatBridgeData(window.c2[n][`${o}Callback`],arguments)}(i);e("webviewSendMsgToApp",`${u}功能在${f()}的Webview环境下执行,调用参数:${JSON.stringify(m)}`),this.h5SendMsgToAppByBrowser(r,l,m)}catch(t){console.log(`🚀发送消息给APP出现错误,错误信息:${t},${JSON.stringify(t)}`),e("webviewSendMsgToApp",`${u}执行数据处理失败`,"error",t)}},initEventCallbackEv(i,n,o={}){const{description:a,resDataFormat:s,resErrorFormat:r}=o;n.onSuccess=function(t){e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行完成`),i(s?s(t):t)},n.onFail=function(n){const o=t(n);e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行失败,收到的回调数据:::${JSON.stringify(o)}`),i(r?r(o):s?s(o):o)}},formatBridgeData(t,i){try{const n=Math.random().toString(32).slice(2),o=[];for(let e in i){const a=n+"_a"+e,s=i[e],r={};!1===/OpenHarmony ([5-9])|OpenHarmony (\d{2})/i.test(navigator.userAgent)&&X(s,a,r);for(let e in r)t[e]=r[e],this.C2ReceiveQueue.push(t);o.push({type:Y(s),name:a,value:s})}return e("formatBridgeData",`格式化后的参数:${JSON.stringify(o)}`),{params:o,id:n}}catch(t){e("formatBridgeData","消息通讯数据格式化异常","error",t)}},h5SendMsgToAppByWindow(t,i={},n={}){const{nativeEvName:o,description:s,resDataFormat:r}=i,c=f(),l=`${o}Back`;let u=n;e("h5SendMsgToAppByWindow",`给【${c}】APP发送【${s}】-【${o}】事件调用,回调函数名称:【${l}】`,"log"),window[l]=i=>{let n=i;e("h5SendMsgToAppByWindow",`收到【${c}】APP发送的${s}事件调用的回调值:${JSON.stringify(n)},回调数据类型::${typeof n}`,"log"),n=a(n),t(r?r(n):n)},setTimeout(()=>{"ios"!==c.toLowerCase()?"android"!==c.toLowerCase()?window.harmony[o](u):window.android[o](u):window.webkit.messageHandlers[o].postMessage(u)},100)},h5SendMsgToAppByBrowser(t,i={},n={}){const o=f();e("h5SendMsgToAppByBrowser",`给【${o}】APP发送【${i.nativeEvName}】事件调用,入参:${JSON.stringify(n)}`,"log");const{nativeEvName:a,moduleName:s,isCustomEv:r}=i,{id:c,params:l}=n;if("android"!==o)return"ios"===o?(this.iosCallBackList.push({id:c,resolveInfo:t,configInfo:i}),void this.h5SendMsgToIOS(c,s,a,l,r)):void("harmony"===o&&this.h5SendMsgToHarmony(c,s,a,l,r));this.h5SendMsgToAndroid(c,s,a,l,r)},h5SendMsgToAndroid(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToAndroid",`发送给安卓APP的消息:${JSON.stringify(s)}`),JSON.parse(window.AndroidFunction.callAndroidFun(JSON.stringify(s)))},h5SendMsgToIOS(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToIOS",`发送给IOS APP的消息:${JSON.stringify(s)}`),JSON.parse(prompt(JSON.stringify(s)))},h5SendMsgToHarmony(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToHarmony",`发送给鸿蒙APP的消息:${JSON.stringify(s)}`),JSON.parse(window.harmonyFunction.callHarmonyFun(s))}},ee={msgList:[],msgStack:[],async miniAppH5SendMsgToApp(t,i,n){try{e("miniAppH5SendMsgToApp",`发送消息给webview:${i}`,"log");const o=await this.sendMsgToMiniApp({methodName:i,methodData:n});t(o?.resultInfo)}catch(n){e("miniAppH5SendMsgToApp",`执行${i}失败`,"error",n),t({isSuccess:!1,message:"执行事件失败,详情查看控制台"})}},sendMsgToMiniApp(t){return new Promise((n,o)=>{e("postMsgToWebview",`消息内容:${JSON.stringify(t)}`,"log");const{methodName:a,methodData:s}=t||{};if(!a)return void e("postMsgToWebview","请传入要调用的事件名称","warn");if(!s)return void e("postMsgToWebview","请传入要调用事件的数据信息","warn");const r=i(),c={data:{msgId:r,isH5Send:!0,...t}};if(this.msgList.push({id:r,resolveInfo:n,rejectInfo:o}),e("postMsgToWebview",`发送消息给父容器页面:${JSON.stringify(c)}`,"log"),!this.uniSDKInit)return e("postMsgToWebview","SDK尚未初始化完成,先行执行堆栈","log"),void this.msgStack.push({id:i(),msgContent:c,resolve:n,reject:o});uni?.webView?.postMessage?uni.webView.postMessage(c):uni?.postMessage(c)}).catch(t=>{e("postMsgToWebview","发生异常","error",t)})}},te={getMessageFromWebview(t,i=!1){let n={};try{n=i?t:t?.data||"{}",n=a(n)}catch(t){e("getMessageFromWebview","解析数据异常","error",t)}if(e("getMessageFromWebview",`是否为webview发送的消息内容:${n?.isWebviewSend},消息内容:${JSON.stringify(n)}`,"log"),!n?.isWebviewSend)return;const{msgId:o}=n,s=this.msgList.findIndex(e=>e.id===o);if(-1===s)return;const r=this.msgList[s],{resolveInfo:c}=r;c(n),this.msgList.splice(s,1)}},ie=[];let ne=new class{version="";isInit=!1;isWebviewPage=!1;anaSDKInit=!1;uniSDKInit=!1;weChatInit=!1;alipayInit=!1;iosCallBackList=[];C2ReceiveQueue=[];autoUpdate=!0;autoConfigMenuBtn=!0;weChatConfigReady=!1;constructor(e,t){this.version=e,this.isInit=!1,this.isWebviewPage=t,this.iosCallBackList=[],this.initModuleMethod(),this.initSDKAPI(),this.initDefaultConfig()}initModuleMethod(){n(T,this),n(J,this),n(W,this),n(K,this),n(U,this),n(j,this),n(R,this),n(Q,this),n(z,this),n(Z,this),n(G,this),n(V,this),n(te,this),n(ee,this)}init(t){e("init","SDK初始化任务执行处理"),w()?(N()&&this.initWebviewMsgFormat(),this.initSDKScriptFile(),this.trackSDKInit(t)):e("init","当前环境非浏览器环境,无需执行初始化动作","warn")}initSDKScriptFile(){e("initSDKScriptFile","挂载第三方SDK脚本文件"),this.initUNISDK(),C()?this.initWeChatSDK():this.initAliPaySDK()}initWebviewMsgFormat(){e("initWebviewMsgFormat","初始化被嵌套的页面消息通讯","log"),w()?(window.addEventListener("message",t=>{e("initWebviewMsgFormat","浏览器消息处理","log"),this.getMessageFromWebview(t)}),window.getMessageFromWebview=t=>{e("initWebviewMsgFormat","事件注入消息处理","log"),this.getMessageFromWebview(t,!0)}):e("initWebviewMsgFormat","该API仅支持在被webview嵌套的H5页面中使用","error","")}initUNISDK(){w()&&(M()||l("https://mobile.zwfw.hunan.gov.cn:8088/uni.webview.1.5.6.js","UNI").then(()=>{M()&&(this.uniSDKInit=!0,e("initUNISDK","UNI Webview SDK 挂载完成"))}))}initWeChatSDK(){if(e("initWeChatSDK","初始化weChat SDK"),w())return $()?(this.initWeChatConfig(),void e("initWeChatSDK","WeChat SDK已挂载完成,无需二次挂载")):void l("https://res.wx.qq.com/open/js/jweixin-1.6.0.js","微信").then(t=>{$()&&(this.weChatInit=!0,this.initWeChatConfig(),e("initWeChatSDK","WeChat SDK挂载完成"))})}initWeChatConfig(){this.weChatConfigReady||wx.request({url:`${O}/api/auth/wechat/v1/getJsapiTicket`,method:"POST",data:{url:window.location.href.split("#")[0]},success:t=>{const i=t?.data?.data;this.weChatConfigReady=!0,e("getLocationInWeChat","获取签名信息完成"),window?.wx?.config({appId:"wx44bc5d5e34ac0c01",timestamp:i?.timestamp,nonceStr:i?.noncestr,signature:i?.signature,jsApiList:["getLocation","openLocation","chooseImage","chooseFile","scanQRCode","previewImage","downloadImage"]}),this.checkLocationEvStation()},fail:t=>{e("initWeChatConfig",`获取签名信息失败,信息是:${JSON.stringify(t)}`)}})}initAliPaySDK(){e("initAliPaySDK","初始化Alipay SDK"),w()&&(A()||I()&&l("https://appx/web-view.min.js","支付宝").then(t=>{A()&&(this.alipayInit=!0,e("initAliPaySDK","Alipay SDK挂载完成"))}))}initSDKAPI(){S()&&(e("initSDKAPI","App的Webview环境,初始化C2调用链的回调函数"),this.initMobileBridgeGlobalConfig()),e("initSDKAPI","开始初始化SDK API"),k.forEach(t=>{const{eventName:i,moduleName:n,nativeEvName:o,isCustomEv:a}=t;if((n&&o||a)&&S()&&(e("initSDKAPI",`初始化C2调用链的回调函数:${i}`),this.checkMobileModuleBack(n,o,a)),!ie?.includes(i))try{this[i]=e=>new Promise(i=>{this.normalEvDataTransition(i,e,t)})}catch(t){e("initSDKAPI","执行API初始化挂载异常","error",t)}})}normalEvDataTransition(t,i={},n={}){const{eventName:o,description:a,reqDataFormat:s}=n||{},r=f();let c=i;if(s&&(c=s(i)),c)return S()?(e("normalEvDataTransition",`开始调用APP的嵌套H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.appH5SendMsgToApp(t,n,c)):y()?(e("normalEvDataTransition",`开始调用小程序/H5嵌套的H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.miniAppH5SendMsgToApp(t,o,c,a)):void(C()||I()?this.executeBrowserEvent(t,c,i,n):this.executeEvByNative(t,c,n));e(o,`给【${r}】APP发送【${a}】-【${o}】事件失败,请检查数据格式是否正确`,"error")}executeEvByNative(t,i,n){const{description:o,uniEvName:a,eventName:r,nativeResFormat:c}=n;try{e("executeEvByNative",`开始调用原生${o}的能力,API名称:${a},格式化前的参数信息:${JSON.stringify(i)}`),uni.sendNativeEvent(a,i,async i=>{e("executeEvByNative",`调用原生${o}的能力完成,结果:${JSON.stringify(i)}`,"log");let n=i;c&&(n=c(n),e("executeEvByNative",`调用原生${o}的能力完成,格式化后的结果:${JSON.stringify(n)}`,"log")),"fileDownload"===r&&i.isSuccess&&s(t,n),"getLocationInfo"!==r?"fileDownload"!==r&&s(t,n):uni.sendNativeEvent("System_getAppInfo",{},e=>{if(e.platform.toLowerCase().includes("harmony")){const e=((e,t)=>{const i=3.141592653589793,n=6378245,o=.006693421622965943;if(((e,t)=>t<72.004||t>137.8347||e<.8293||e>55.8271)(t,e))return[e,t];let a=b(e-105,t-35),s=D(e-105,t-35);const r=t/180*i;let c=Math.sin(r);c=1-o*c*c;const l=Math.sqrt(c);return a=180*a/(n*(1-o)/(c*l)*i),s=180*s/(n/l*Math.cos(r)*i),{lat:t+a,lng:e+s}})(i?.location?.longitude,i?.location?.latitude);n.location.longitude=e?.lng,n.location.latitude=e?.lat}s(t,n)})})}catch(i){t({isSuccess:!1,message:`${o}API执行失败,具体错误信息请查看控制台`}),e("executeEvByNative",`${o}API执行异常`,"error",i)}}initDefaultConfig(){e("initDefaultConfig","默认胶囊按钮配置执行初始化处理"),this.autoUpdate?this.resetMenuBtnConfig():e("initDefaultConfig","业务侧配置无需自动重置胶囊按钮,不至于页面切换事件监听")}}(F,N());return w()&&(window.xybAgent=ne),ne});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).xybAgent=t()}(this,function(){"use strict";const e=(e="",t="",i="log",n="")=>{const o={error:"错误",warn:"警告",info:"提示",log:"日志"}[i]||"日志",a=JSON.stringify(n);console.log(`\n=============🚀START - V${F} 🚀=============\n【事件名称】:${e} \n【日志类型】:${o} \n【日志信息】:${t} ${"error"===i?`【错误信息】:${JSON.stringify(a)}`:""} \n==============🚀END🚀==============`),console.log("")},t=(t={})=>{if("function"==typeof t)return e("deepClone","数据类型为function,无法执行深拷贝,请检查","error"),t;try{return JSON.parse(JSON.stringify(t))}catch(i){return e("deepClone","执行数据深拷贝异常","error",i),t}},i=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}),n=(e={},t={})=>{for(let i in e)t[i]=e[i]},o=(t=!1)=>{let i={route:null,path:null,options:{}};try{const e="function"==typeof getCurrentPages?getCurrentPages():[],n=[];for(let t in e)n.push({route:e[t].route,path:e[t].$page?.fullPath,options:e[t].$page?.options});const o=n?.length||0;if(o){const e=n[o-1],a=n[o-2];i=(t?a:e)||{}}}catch(t){e("getCurrentPagePath","获取页面信息失败","error",t)}return i},a=e=>{try{return JSON.parse(e)}catch(t){return e}},s=(t={},i={})=>{let n=i;try{n=a(i)}catch(t){e("formatResponseData","格式化失败","error",t),n=i}t(n)},r=e=>null==e,c=(e="",t="")=>{let i=t||window?.location?.href;if(i=decodeURIComponent(i),i?.includes(e)){let t=i.split(`${e}=`)[1];return t?.includes("&")&&(t=t.split("&")[0]),t}return""},l=(e="",t="")=>{if(e)return new Promise(t=>{const i=document.createElement("script");i.src=e,i.onload=t,document.head.appendChild(i)})},u=(t,i)=>{window?.my?.navigateTo({url:t,fail:t=>{e("openAlipayMiniApp","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})},d=(t,i)=>{window?.wx?.miniProgram?.navigateTo({url:t,fail:t=>{e("executeAuthFaceInBrowser","跳转失败,请检查配置信息","error",t),i({code:-1,isSuccess:!1,message:"跳转失败,请检查配置信息"})}})};let m={finished:!1,result:!1},g={finished:!1,result:!1},h={finished:!1,result:!1},v={finished:!1,result:!1};const p=()=>w()?navigator.userAgent.toLowerCase():"",f=()=>{const e=p();return/android/i.test(e)?"android":/iphone|ipad|ipod|mac/i.test(e)&&!window.MSStream?"ios":/windows phone/i.test(e)?"windows":"harmony"},w=()=>window&&document,y=()=>{if(v.finished)return v.result;if(v.finished=!0,!w())return v.result=!1,!1;const t=p();return v.result=t.includes("uni-app"),e("checkIsMiniAppBrowserEnv",`当前是否为小程序的浏览器环境:${v.result}`),v.result},N=()=>{const{finished:t,result:i}=m;return t?i:(m.result=(()=>{if(h.finished)return h.result;if(h.finished=!0,!w())return h.result=!1,!1;const t=p();return h.result=t.includes("xybwebcomponent")||t.includes("uni-app"),e("checkIsXybBrowserEnv",`当前是否为湘易办浏览器环境:${h.result}`),h.result})()||y(),m.finished=!0,e("checkIsWebviewEnv",`当前是否为Webview环境:${m.result}`),m.result)},S=()=>{const{finished:t,result:i}=g;if(t)return i;if(g.finished=!0,!w())return g.result=!1,!1;const n=p();return g.result=n.includes("xybwebcomponent")&&!n.includes("uniminiapp"),e("checkIsAppWebviewEnv",`当前是否为APP的Webview环境:${g.result}`),g.result},C=()=>w()?p().includes("micromessenger"):"mp-weixin"===f(),I=()=>w()?p().includes("alipay"):"mp-alipay"===f(),E=()=>!!uni&&(!!uni.sendNativeEvent&&("function"==typeof uni.sendNativeEvent||"undefined"!=typeof uni&&Object.prototype.hasOwnProperty.call(uni,"sendNativeEvent"))),M=()=>window?.uni&&"function"==typeof window?.uni?.webView?.postMessage,$=()=>"function"==typeof window?.wx?.chooseImage,A=()=>"function"===Boolean(window?.my)?.chooseImage,b=(e,t)=>{let i=2*e-100+3*t+.2*t*t+.1*e*t+.2*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(t*PI)+40*Math.sin(t/3*PI))/3,i+=2*(160*Math.sin(t/12*PI)+320*Math.sin(t*PI/30))/3,i},D=(e,t)=>{let i=300+e+2*t+.1*e*e+.1*e*t+.1*Math.sqrt(Math.abs(e));return i+=2*(20*Math.sin(6*e*PI)+20*Math.sin(2*e*PI))/3,i+=2*(20*Math.sin(e*PI)+40*Math.sin(e/3*PI))/3,i+=2*(150*Math.sin(e/12*PI)+300*Math.sin(e/30*PI))/3,i},x=(t,i)=>{const n=52.35987755982988,o=t-.0065,a=i-.006,s=Math.sqrt(o*o+a*a)-2e-5*Math.sin(a*n),r=Math.atan2(a,o)-3e-6*Math.cos(o*n),c=s*Math.cos(r).toFixed(6),l=s*Math.sin(r).toFixed(6);return e("BaiduToGCJ02",`已完成百度坐标系转换成国测坐标系的转换,转换后的值:lng:${c}, lat:${l}`),{lng:c,lat:l}},P=t=>{const{dinateType:i,lat:n,lng:o,address:a}=t;return e("replaceCoordinate",`坐标转换开始:${i}`,"log"),x(t)},k=[{isCustomEv:!0,eventName:"authFace",uniEvName:"Auth_face",description:"人脸识别功能",nativeEvName:"faceAuth",reqDataFormat:t=>{e("authFace",`执行人脸验证,参数信息:${JSON.stringify(t)}`);const{name:i,certNo:n,appId:o,sign:a,created:s,nonce:r}=t;return i&&n&&o&&a&&s&&r?t:(e("authFace","缺少必要参数:name, certNo, appId, sign, created, nonce","error","缺少必要参数"),!1)},resDataFormat:e=>({isSuccess:Boolean(e),certifyId:e}),resErrorFormat:e=>"harmony"===f().toLowerCase()?{isSuccess:!1,errorMsg:e}:e},{isCustomEv:!0,eventName:"startNavigation",uniEvName:"Start_navigation",description:"目的地导航",nativeEvName:"start_navigation",reqDataFormat:t=>{let i={};const{dinateType:n,lat:o,lng:a,address:s,destinationLatitude:r,destinationLongitude:c}=t;return r&&c?t:(e("replaceCoordinate",`坐标系值:LAT:${o},LNG:${a}`,"log"),i=n&&"GCJ02"!==n?P(t):{destinationLatitude:o,destinationLongitude:a,destinationName:s},e("replaceCoordinate",`转换后值:LAT:${i.destinationLatitude},LNG:${i.destinationLongitude}`,"log"),i)}},{isWindowEv:!0,eventName:"getLoginStatus",uniEvName:"Auth_checkLogin",description:"获取登录状态",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>{const i=t(e);return{logined:1===Number(i?.isLogin)}},resErrorFormat:()=>({logined:!1})},{isWindowEv:!0,eventName:"getLoginUserInfo",uniEvName:"Auth_getUserInfo",description:"获取登录用户数据信息",nativeEvName:"CallNativeMethodGetUserInfo",resDataFormat:e=>t(e),resErrorFormat:()=>({isSuccess:!1})},{isCustomEv:!0,eventName:"getAuthToken",uniEvName:"Auth_getToken",description:"获取授权token",nativeEvName:"get_token",resDataFormat:e=>{try{const i=t(e);return{token:i?.token,isSuccess:Boolean(i?.token)}}catch(t){return{token:e?.token,isSuccess:Boolean(e?.token)}}},resErrorFormat:()=>({isSuccess:!1})},{isWindowEv:!0,eventName:"getAccessLink",uniEvName:"Auth_getAccessLink",nativeEvName:"CallNativeMethodGetAccessLink",description:"获取授权链接",resDataFormat:e=>"ios"===f().toLowerCase()?{isSuccess:!0,accessLink:e}:t(e),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"image",eventName:"chooseImg",uniEvName:"Image_choose",nativeEvName:"chooseImage",browserEvName:"chooseImage",description:"选择本地图片",reqDataFormat:e=>{const{count:t,sizeType:i,sourceType:n,isCircleCrop:o}=e||{};return{count:t||9,sizeType:i||["original","compressed"],sourceType:n||["album"],isCircleCrop:o||!1}},resDataFormat:e=>t(e),bResDataFormat:e=>{const{tempFiles:t}=e,i=[];for(let e in t){const{name:n,path:o,size:a,type:s}=t[e];i.push({name:n,path:o,size:a,type:s})}return{resultObj:i,isSuccess:!0,message:"选择图片功能操作完成"}}},{moduleName:"image",eventName:"imgPreview",uniEvName:"Image_preview",nativeEvName:"previewImage",browserEvName:"previewImage",description:"执行图片预览"},{moduleName:"image",eventName:"imgUpload",uniEvName:"Image_upload",nativeEvName:"uploadImage",description:"执行图片上传",resDataFormat:e=>t(e),resErrorFormat:e=>e},{eventName:"imgDownload",uniEvName:"Image_download",nativeEvName:"",browserEvName:"downloadImage",description:"执行图片下载"},{eventName:"fileUpload",uniEvName:"File_upload",nativeEvName:"",description:"执行文件上传"},{moduleName:"file",eventName:"fileDownload",uniEvName:"File_download",nativeEvName:"downloadFile",description:"执行文件下载",resDataFormat:e=>({isSuccess:Boolean(e),resultObj:{path:e}})},{moduleName:"file",eventName:"filePreview",uniEvName:"File_preview",nativeEvName:"previewFile",description:"执行文件预览"},{moduleName:"file",eventName:"openLocalFile",uniEvName:"File_openLocal",nativeEvName:"openLocalFile",description:"执行打开本地文件"},{moduleName:"file",eventName:"chooseLocalFile",uniEvName:"File_chooseLocal",nativeEvName:"chooseLocalFile",browserEvName:"chooseFile",description:"选择本地文件",resDataFormat:e=>t(e)},{moduleName:"file",eventName:"openThirdFile",uniEvName:"File_openThirdParty",nativeEvName:"openFileWithThirdParty",description:"执行打开第三方文件"},{eventName:"openApp",uniEvName:"Util_openApp",nativeEvName:"",description:"打开APP"},{isCustomEv:!0,eventName:"openXybApp",uniEvName:"Util_openXYBMiniApp",nativeEvName:"jumpToMiniApp",description:"打开湘易办融合APP小程序",reqDataFormat:e=>{if(S()){const{pageUrl:t}=e;return{...e,path:t}}return e}},{eventName:"postMsgToOtherApp",uniEvName:"Util_postMessageToXYBMiniApp",nativeEvName:"",description:"发送消息给其他小程序"},{isWindowEv:!0,eventName:"scanCode",uniEvName:"Scan_code",description:"扫描二维码",browserEvName:"scanQRCode",nativeEvName:"CallNativeMethodScanQRCode",resDataFormat:e=>({text:e}),bReqDataFormat:e=>({...e,needResult:1}),bResDataFormat:e=>({text:e?.resultStr||""})},{moduleName:"system",eventName:"getAppInfo",nativeEvName:"getAppInfo",description:"获取应用信息",uniEvName:"System_getAppInfo",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"copyToClipboard",uniEvName:"Util_clipboardData",nativeEvName:"clipboardData",description:"复制内容到剪切板",reqDataFormat:e=>({text:e}),resDataFormat:e=>S()?{isSuccess:Boolean(e)}:{isSuccess:!0}},{moduleName:"util",eventName:"getCacheSize",uniEvName:"Util_getCacheSize",nativeEvName:"getCacheSize",description:"获取缓存大小",resDataFormat:e=>t(e)},{moduleName:"util",eventName:"clearCache",uniEvName:"Util_clearCache",nativeEvName:"clearCache",description:"执行缓存清除",resDataFormat:()=>({isSuccess:!0}),resErrorFormat:()=>({isSuccess:!1})},{moduleName:"telephone",eventName:"callPhone",uniEvName:"Util_callDesignateNumber",nativeEvName:"call",description:"拨打电话",browserEvName:"makePhoneCall",reqDataFormat:e=>"object"==typeof a(e)?a(e):S()?{phoneCode:"+86",phoneNumber:String(e).replace("+86","")}:{text:e}},{eventName:"forbidScreenShot",uniEvName:"Util_forbidScreenShot",nativeEvName:"",description:"执行禁止截屏"},{eventName:"setScreenLight",uniEvName:"Util_setScreenLight",nativeEvName:"",description:"设置屏幕是否常亮",reqDataFormat:e=>({idleTimerValue:e})},{eventName:"sendMatterId",uniEvName:"Param_MatterID",nativeEvName:"",description:"执行页面事件ID上报",reqDataFormat:e=>({matterID:e})},{isWindowEv:!0,description:"获取位置信息",eventName:"getLocationInfo",uniEvName:"Util_getLocationInformation",nativeEvName:"CallNativeMethodGetLocationInformation",resDataFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),f().toLowerCase(),{isSuccess:!0,location:o}},nativeResFormat:e=>{const{location:i,data:n}=e;let o=t(e);return i&&(o=t(e?.location)),n&&(o=t(e?.data)),{isSuccess:!0,location:o}},resErrorFormat:()=>({isSuccess:!1,location:{}})},{eventName:"checkPermission",uniEvName:"Auth_matterHandleAuthority",nativeEvName:"",description:"检查事项权限",reqDataFormat:e=>({matterCode:e})},{eventName:"showComment",uniEvName:"Util_jumpToComment",nativeEvName:"",description:"打开评价弹窗"},{isWindowEv:!0,description:"打开微信小程序",eventName:"openWechatMiniApp",uniEvName:"Util_openWechatMiniProgram",nativeEvName:"CallNativeMethodJumpToWechatMiniProgram",reqDataFormat:e=>{if(S()){const t={};for(let i in e)t[i]=String(e[i]);return JSON.stringify(t)}return e}},{isWindowEv:!0,description:"打开支付宝小程序",eventName:"openAliPayMiniApp",uniEvName:"Util_openAlipayMiniProgram",nativeEvName:"CallNativeMethodJumpToAliPay",reqDataFormat:e=>S()?JSON.stringify(e):e},{eventName:"showMenuPanel",uniEvName:"menu_present",nativeEvName:"",description:"显示菜单面板"},{isCustomEv:!0,eventName:"addCalendarEvent",uniEvName:"Util_addCalendarEvent",nativeEvName:"addCalendarEvent",description:"添加日历日程"},{isCustomEv:!0,eventName:"deleteCalendarEvent",uniEvName:"Util_deleteCalendarEvent",nativeEvName:"deleteCalendarEvent",description:"删除日历日程"},{isCustomEv:!0,eventName:"queryCalendarEvent",uniEvName:"Util_queryCalendarEvent",nativeEvName:"queryCalendarEvent",description:"查询日历日程"}],F="0.0.25",O="https://xybfw.zwfw.hunan.gov.cn/gateway3",T={custom(t,i){e("custom",`通过custom调用${t}事件`);const n=k?.find(e=>e?.nativeEvName===t||e?.eventName===t);return new Promise((e,o)=>{const{reqDataFormat:a}=n||null,s=n||{isCustomEv:!0,moduleName:"custom",eventName:"call",description:"通过Custom调用的C2事件",nativeEvName:t};if(!S())return void e({code:-1,msg:"非APP环境的Webview环境,不支持该功能"});const r=a?a(i):i;this.executeSendMsgToApp({moduleName:"custom",eventName:"call",actionName:t,isCustomEv:!0,dataInfo:r,resolveInfo:e,evConfig:s})})}},L=e=>Number(e)>9?e:`0${e}`,B=()=>{const e=new Date;return`${e.getFullYear()}-${L(e.getMonth()+1)}-${L(e.getDate())} ${L(e.getHours())}:${L(e.getMinutes())}:${L(e.getSeconds())}`},J={trackStack:[],anaSDKLoadTimes:0,locationInfo:{},isProdEnv:!1,track(t="",n={}){if(t){if(n)return w()&&!this.anaSDKInit?(this.trackStack.push({id:i(),eventID:t,eventPro:n}),void e("track","埋点上报插件初始化未完成,本次数据在插件初始化后自动上报","log")):void this.executeTrack(t,n);e("track","埋点数据上报失败","error","请传入埋点数据")}else e("track","埋点数据上报失败","error","请传入埋点事件")},async executeTrack(t="",i={}){if("object"==typeof t)return void await this.track(t?.eventID,t?.eventPro);const n=await this.initTrackParams(i);if(e("track",`执行埋点数据上报,事件名称:${t},事项编码:${n.code},是否上报到生产环境:${this.isProdEnv},完整埋点数据:${JSON.stringify(n)}`,"log"),w()&&xybAgent?.AnalysysAgent)return e("track","通过浏览器插件执行埋点数据上报","log"),void window.xybAgent.AnalysysAgent.track(t,n);if(E())try{e("track",`埋点数据:${JSON.stringify(n)},埋点ID:${t}`,"log"),uni.sendNativeEvent("Analysis_common",{eventID:t,eventPro:n})}catch(t){e("track","执行数据埋点功能异常","error",t)}},trackSDKInit(t){return new Promise((i,n)=>{w()||(e("initTrack","非浏览器环境无需使用init执行初","error"),i(!0)),this.anaSDKInsert?this.configAnaSDK(t,i):l("https://mobile.zwfw.hunan.gov.cn:8088/AnalysysAgent_JS_SDK.min.js","极光").then(()=>{window.AnalysysAgent&&(xybAgent.AnalysysAgent=window.AnalysysAgent,this.anaSDKInsert=!0,this.configAnaSDK(t,i))})})},configAnaSDK(t,i){const n="800c298f0c42c94c",o="40d556c15f872084";let a=location?.host?.includes("hunan.gov.cn")?n:o;if("object"==typeof t)a=o;else{const e={production:n,development:o},i=[n,o];(e[t]||i.includes(t))&&(a=e[t]?e[t]:t)}this.isProdEnv=a===n,e("configAnaSDK",`配置信息:${JSON.stringify(t)},是否为生产环境:${this.isProdEnv},上报的key值:${a}`),w()?(window.xybAgent.AnalysysAgent&&(window.xybAgent.AnalysysAgent.init({appkey:a,uploadURL:"https://mobile.zwfw.hunan.gov.cn:8088/aurora-api"}),e("configAnaSDK","xybAgent已初始化完成,可正常执行埋点操作","log"),this.anaSDKInit=!0,this.isInit=!0,this.checkTrackStack(),i(!0)),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes<10&&setTimeout(()=>this.trackSDKInit(i),300),!Boolean(window.xybAgent.AnalysysAgent)&&this.anaSDKLoadTimes>=10&&(e("configAnaSDK","xybAgent初始化失败","error","请检查app key、uploadURL是否正确"),i(!1))):i(!1)},async initTrackParams(e={}){const{code:t,name:i,aff_city_code:n,aff_city_name:o,unit_code:a,area_code:s,unit_name:r,is_finish:c,category:l,user_id:u,miniAppCode:d,$url_domain:m}=e,g=this.getVisitSource(),h=this.getPageSource(),v=await this.getPositionInfo();return{code:t||void 0,name:i||void 0,aff_city_code:n||void 0,aff_city_name:o||void 0,unit_code:a||void 0,area_code:s||void 0,unit_name:r||void 0,is_finish:c||void 0,category:l||void 0,user_id:u||void 0,miniAppCode:d||void 0,$url_domain:m||void 0,curr_time:B(),source:g,page_source:h,location:v}},getVisitSource(){if(!w()){const e=uni?.getSystemInfoSync(),{uniPlatform:t}=e||{};return"mp-weixin"===t?"wx":"mp-alipay"===t?"alipay":"app"}return C()?"wx":I()?"alipay":"app"},checkTrackStack(){e("checkTrackStack","执行埋点数据堆栈检测","log");t(this.trackStack).forEach(t=>{const{eventID:i,eventPro:n,id:o}=t;e("checkTrackStack",`执行id值为${o} 的埋点数据再次上报`,"log"),this.track(i,n);const a=this.trackStack.findIndex(e=>e.id===o);a>-1&&this.trackStack.splice(a,1)})},getPageSource(){let e=null;e=w()?location.href:decodeURIComponent(o().path);const t=e?.includes("source=");if(!t)return"click";const i=e.split("source=")[1];let n="click";return n=i.includes("&")?i.split("&")[0]:i,["copy","share","click","search"].includes(n)?n:"click"},async getPositionInfo(){if(!this.locationInfo?.province)try{const{location:e}=await this.getLocationInfo()||{};this.locationInfo=e||""}catch(t){e("getLocationInfo","获取位置信息异常","error",t),this.locationInfo={}}return JSON.stringify(this.locationInfo)}},W={initMobileBridgeGlobalConfig(){const t=f();e("initMobileBridgeGlobalConfig",`开始初始化移动端桥链接配置,访问设备类型:${t}`),window.c2={},"ios"===t&&this.initIOSCallbackEvConfig(),"android"===t&&this.initAndroidCallbackEvConfig(),e("initMobileBridgeGlobalConfig","初始化移动端桥链接配置完成"),window.CreatorJsBridge=window.c2},initIOSCallbackEvConfig(){try{const t=this;window.c2.iOS={},window.c2.iOS.callJS=function(){window?.c2.iOS?.callJSCallback||(window.c2.iOS.callJSCallback={}),e("initIOSCallbackEvConfig",`开始处理IOS设备回调事件,回调数据:${JSON.stringify(arguments)}`),t.IOSCallbackEvFormat(arguments[0])}}catch(t){e("initIOSCallbackEvConfig","初始化IOS回调事件配置异常","error",t)}},initAndroidCallbackEvConfig(){window.c2.sendDataWarpToWeb=(e,t,i)=>{e(i)}},IOSCallbackEvFormat(i){const{returnValue:n,funcName:o}=i;let s=this.base64Decode(n);s=a(s),e("IOSCallbackEvFormat",`IOS设备回调事件处理开始,回调数据:${JSON.stringify(s)}, 格式:${typeof s}`);const r=o.split("_a")[0],c=o.replace(r,""),l=this.iosCallBackList.find(e=>e.id===r);if(!l)return;const{resolveInfo:u,configInfo:d}=l,{resDataFormat:m,resErrorFormat:g}=d;if(c.includes("onFail")&&g)return s=g({isSuccess:!1,errorMsg:t(n)}),void u(s);m&&(s=m(s)),e("IOSCallbackEvFormat",`IOS设备回调事件处理完成,返回数据:${JSON.stringify(s)}`),u(s);const h=this.iosCallBackList.findIndex(e=>e.id===r);this.iosCallBackList.splice(h,1)},base64Decode(e){let t,i,n,o,a,s,r,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l="",u=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");u<e.length;)o=c.indexOf(e.charAt(u++)),a=c.indexOf(e.charAt(u++)),s=c.indexOf(e.charAt(u++)),r=c.indexOf(e.charAt(u++)),t=o<<2|a>>4,i=(15&a)<<4|s>>2,n=(3&s)<<6|r,l+=String.fromCharCode(t),64!=s&&(l+=String.fromCharCode(i)),64!=r&&(l+=String.fromCharCode(n));return l=this._utf8_decode(l),l},_utf8_decode(e){let t="",i=0,n=0,o=0,a=0;for(;i<e.length;)n=e.charCodeAt(i),n<128?(t+=String.fromCharCode(n),i++):n>191&&n<224?(a=e.charCodeAt(i+1),t+=String.fromCharCode((31&n)<<6|63&a),i+=2):(a=e.charCodeAt(i+1),o=e.charCodeAt(i+2),t+=String.fromCharCode((15&n)<<12|(63&a)<<6|63&o),i+=3);return t},checkMobileModuleBack(e,t,i){const n=i?"custom":e,o=`${i?"call":t}Callback`;window.c2.hasOwnProperty(n)||(window.c2[n]={}),window.c2[n].hasOwnProperty(o)||(window.c2[n][o]={})}};let _=null,q=null,H=null;E()?(_=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-RUM"):null,q=uni&&uni?.requireNativePlugin?uni?.requireNativePlugin("GCUniPlugin-Tracer"):null,H=uni&&uni?.getSystemInfoSync?uni.getSystemInfoSync().platform:null):e("请求插件初始化","未找到uni对象","warn");const K={defaults:{headers:{},baseURL:""},interceptor:{request:null,response:null},requestOb:!1,request(i={}){return new Promise((n,o)=>{let a=t(i);if(!this.interceptor.request||"function"!=typeof this.interceptor.request||i.ignore||(a=this.interceptor.request(i),a))if(E()&&this.requestOb&&Boolean(_)&&Boolean(q))try{e("request","走服务监控平台的请求配置","log"),this.executeCloudObRequest(a,n,o)}catch(t){e("request","走服务监控平台的请求配置失败","error",t)}else e("request","走uni的请求配置","log"),this.executeNormalRequest(a,n,o);else n(!1)})},executeCloudObRequest(t,n,o){let a=i();const s=this.checkCloudObRequestHeader(t,a);if(!s)return;const{traceHeader:c,filter:l}=s;let u,d,m;_.startResource({key:a}),uni.request({url:`${this.defaults.baseURL}${t.url}`,method:t.method,header:c,data:t.data,timeout:t.timeout,withCredentials:t?.withCredentials||void 0,success:i=>{if(e("executeCloudObRequest",`接口:${t.url},请求成功`,"log"),l||(u=i.header,d=i.data.toString(),m=i.statusCode),r(t.success)||t.success(i),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(i);return void n(e)}n(i)},fail:i=>{e("executeCloudObRequest",`接口:${t.url},请求失败`,"error",i),l||(d=i?.errMsg),r(t?.fail)||t.fail(i),o(i)},complete:()=>{if(e("executeCloudObRequest",`接口:${t.url},请求完成`,"log"),!l){e("executeCloudObRequest",`无filter配置的数据信息::::key值:${a};URL地址:${t.url};`),_.stopResource({key:a});const i={url:`${this.defaults.baseURL}${t.url}`,httpMethod:t.method,requestHeader:c,responseHeader:u,responseBody:d,resourceStatus:m};_.addResource({key:a,content:i})}Boolean(t?.complete)&&t?.complete()}})},checkCloudObRequestHeader(t,i){let n;r(t?.filterPlatform)?(e("executeCloudObRequest",`options.filterPlatform:${t.filterPlatform}`,"log"),n=!1):(n=t?.filterPlatform?.includes(H),e("executeCloudObRequest",`platform:${t.filterPlatform}`,"log")),e("executeCloudObRequest",`rum:${_},tracer:${q}`,"log");let o={};return n||(o=q?.getTraceHeader({key:i,url:t.url})),e("executeCloudObRequest",`是否读取到【tracer】插件配置:${Boolean(q)},是否读取到【rum】插件配置:${Boolean(_)}`,"log"),_&&q?(o=Object.assign({},o,t.header),o=Object.assign({},o,this.defaults.headers),{traceHeader:o,filter:n}):(e("executeCloudObRequest","请配置服务监控平台原生插件","log"),!1)},executeNormalRequest(t,i,n){const{url:o,header:a,data:s,method:r}=t||{},c=Object.assign({},this.defaults.headers,a);uni.request({url:`${this.defaults.baseURL}${o}`,header:c,data:s,method:r,withCredentials:t?.withCredentials||void 0,success:n=>{if(e("normalRequest",`接口:${o},请求成功`,"log"),this.interceptor.response&&"function"==typeof this.interceptor.response&&!t.ignore){const e=this.interceptor.response(n);return void i(e)}i(n)},fail:t=>{e("normalRequest",`接口:${o},请求异常`,"error",t),n(t)}})}},U={resetMenuBtnConfig(){e("hideNativeBtn","隐藏原生APP分享、评价按钮","log");const t={share:{show:!1},comment:{show:!1},favorite:{show:!0}};try{this.menuBtnConfig(t),this.pageChangeEv(i=>{if(!this.autoUpdate)return void e("resetMenuBtnConfig","业务侧设置不自动重置胶囊按钮,中断配置动作");const{options:n}=i,{xybModuleCode:o}=n||{};if(o&&this.autoConfigMenuBtn)return e("resetMenuBtnConfig",`页面拦截事件生效 自动设置原生APP分享、评价按钮,配置信息:${JSON.stringify(i)}`,"log"),void this.menuBtnConfig({share:{show:!0,code:o,type:4},comment:{show:!0,code:o,type:4},favorite:{show:!0}});e("resetMenuBtnConfig","页面拦截事件生效 自动重置原生APP分享、评价按钮配置信息","log"),this.menuBtnConfig(t)})}catch(t){e("resetMenuBtnConfig","配置APP的胶囊按钮清单显示失败,请检查参数是否正确","error",t)}},pageChangeEv(t){if(!uni)return;["navigateTo","redirectTo","switchTab","reLaunch","navigateBack","onBackPress"].forEach(i=>{try{uni.addInterceptor(i,{invoke(n){try{const{url:a}=n;let s={options:{},path:null,route:null},r=decodeURIComponent(a);s.path=r,s.route=r.split("?")[0],r?.includes("xybModuleCode=")&&(console.log(`🚀当前页面路径信息:${r}`),s.options.xybModuleCode=c("xybModuleCode",r)),r?.includes("?")&&(s.route=r.split("?")[0]),i?.includes("Back")&&(s=o(i?.includes("Back"))),e("pageChangeEv",`页面路径发生了变化,当前页面路径:${s.path}`,"log"),"function"==typeof t&&t(s)}catch(t){console.log("🚀 错误信息:::::",t),e("pageChangeEv","拦截路径变化时发生了异常","error",t)}return!0}})}catch(t){e("pageChangeEv","执行页面变化拦截异常","error",t)}})},menuBtnConfig(t={}){e("menuBtnConfig",`配置APP胶囊按钮清单显示,配置信息:${JSON.stringify(t)}`,"log");let i=!0;for(let n in t){if("object"!=typeof t[n]){i=!1,e("menuBtnConfig","配置参数错误","error","请传入一个Object配置数据");break}}if(i)if(N())this.miniAppH5SendMsgToApp(null,"menuBtnConfig",t,"配置APP的胶囊按钮清单显示");else if(!w()&&uni&&uni?.sendNativeEvent)try{e("menuBtnConfig","开始执行配置APP胶囊按钮清单显示","log"),uni?.sendNativeEvent("Util_MiniAppConfigMenu",t)}catch(t){e("menuBtnConfig","配置APP的胶囊按钮清单显示时发生异常","error",t)}else e("menuBtnConfig","配置APP胶囊按钮清单显示功能无法在非UNI环境运行","log")}},R={executeBrowserEvent(t,i={},n={},o={}){const a=C()?"微信小程序":I()?"支付宝小程序":"浏览器",{eventName:s,description:r,browserEvName:c,bResDataFormat:l,bReqDataFormat:u,reqDataFormat:d}=o,m="startNavigation"===s?n:i;e("normalEvDataTransition",`开始调用${a}嵌套H5的能力,事件名称:${s},入参:${JSON.stringify(m)},配置信息:${JSON.stringify(o)}`);const g={authFace:"executeAuthFaceInBrowser",getLocationInfo:"executeGetLocationInBrowser",startNavigation:"startNavigationInBrowser",fileUpload:"executeFileUploadInBrowser",chooseImg:"executeImageChooseInBrowser"}[s];if(g)return void this[g](t,m,o);if(!c)return void t({isSuccess:!1,code:-1,message:`非常抱歉,${r}功能无法在当前环境中使用`});const h=d?d(i):u?u(i):i;I()||C()?this.executeMPBrowserEvent(t,c,i,s):this.executeNativeBrowserEv(t,c,h,l)},executeMPBrowserEvent(i,n,o,a){e("executeMPBrowserEvent",`配置信息:${JSON.stringify(o)}`);let s=t(o);e("executeMPBrowserEvent",`配置信息:${JSON.stringify(s)}`),s.success=t=>{e("executeMPBrowserEvent",`执行:${a}事件完成,返回结果:${JSON.stringify(t)}`)},s.fail=t=>{e("executeMPBrowserEvent",`执行:${a}事件失败,错误信息:${JSON.stringify(t)}`)},e("executeWeChatBrowserEv",`${a},配置信息:${JSON.stringify(s)}`),C()?window.wx[n](s):window.my[n](s)},executeNativeBrowserEv(e,i){let n=t(i);n.success=function(e){console.log(e)},n.fail=function(e){console.error(e)},window.uni[e](n)}},G={executeAuthFaceInBrowser(t,i={},n={}){const o=function(i){let n=c("faceKey",window?.location?.href);if(e("executeAuthFaceInBrowser",`获取到的faceKey参数值::::${n}`),!window?.location?.href.includes("faceKey"))return;const a={isSuccess:Boolean(n),certifyId:`MINI_${n}`,portrait:null,errorMsg:Boolean(n)?null:"人脸验证失败,请检查参数信息"};window.removeEventListener("hashchange",o),setTimeout(()=>{e("executeAuthFaceInBrowser",`执行验证结果回抛给业务侧:${JSON.stringify(a)}`),t(a)},100)};window.addEventListener("hashchange",o);const a=encodeURIComponent(window.location.href),{certNo:s,name:r}=i;let l=`/pages/sdk/sdk?redirectUrl=${a}&type=authFace&idCard=${encodeURIComponent(s)}&name=${r}`;C()?d(l,t):I()?u(l,t):(e("executeAuthFaceInBrowser","当前环境不支持人脸识别","warning"),t({isSuccess:!1,code:-1,message:"当前环境下不支持人脸识别验证功能"}))}},j={locationCheck:!1,locationEvList:[],checkLocationEvStation(){this.locationEvList.forEach(e=>{this.getLocationInWeChat(e.resolveInfo,e.id)})},executeGetLocationInBrowser(t){e("executeGetLocationInBrowser","在微信/支付宝浏览器中获取定位信息"),I()?this.getLocationInAliPay(t):C()?this.getLocationInWeChat(t):t({code:-1,isSuccess:!1,message:"当前环境无法支持位置信息获取,请检查是否为湘易办相关环境"})},getLocationInWeChat(t,n){return this.weChatConfigReady?this.locationCheck?(e("getLocationInWeChat","已缓存签名信息,直接调用对应API获取位置信息"),void this.executeGetLocationInfoData(t,n)):void this.executeGetLocationInfoData(t,n):(e("getLocationInWeChat","微信SDK尚未初始化完毕,先行进行堆栈,待微信SDK初始化后,统一调用"),void this.locationEvList.push({id:i(),resolveInfo:t}))},executeGetLocationInfoData(t,i){e("executeGetLocationInfoData","在微信环境中获取位置信息"),window?.wx?.getLocation({type:"wgs84",success:n=>{this.locationCheck=!0,e("executeGetLocationInfoData",`调用微信获取位置信息完成,结果是:${JSON.stringify(n)}`),this.executeGetDetailLocation(t,n,i)},fail:i=>{t({isSuccess:!1,message:"调用微信获取位置信息失败,请联系管理员"}),e("executeGetLocationInfoData",`调用微信获取位置信息失败,信息是:${JSON.stringify(i)}`)}})},executeGetDetailLocation(t,i,n,o=!1){uni.request({url:`${O}/api/auth/baidumap/v1/reverse_geocoding?location=${i.latitude},${i?.longitude}`,method:"GET",success:i=>{const{data:a}=i?.data||{},s=this.formatLocationData(a,o);if(t(s),n){e("executeGetDetailLocation",`已成功获取到定位信息,清除该事件的堆栈:${n}`);const t=this.locationEvList.findIndex(e=>e.id===n);-1!==t&&this.locationEvList.splice(t,1)}},fail:t=>{e("executeGetDetailLocation","获取位置信息失败","error",JSON.stringify(t))}})},formatLocationData(t={},i=!1){const n=t?.result||{},{lng:o,lat:a}=n?.location||{},{cityCode:s,formatted_address:r}=n||{},{district:c,city:l,country:u,adCode:d,province:m}=n?.addressComponent||{},g=i?n?.location:x(o,a),h={isSuccess:!0,location:{district:c,city:l,longitude:g?.lng,country:u,cityCode:s,adCode:d,address:r,latitude:g?.lat,province:m}};return e("executeGetDetailLocation",`获取位置信息调用完成,结果:${JSON.stringify(h)}`),h},getLocationInAliPay(t){window?.my?.getLocation({type:"wgs84",success:i=>{e("getLocationInAliPay",`支付宝下获取位置信息完成:::${JSON.stringify(i)}`),this.executeGetDetailLocation(t,i,null,!0)},fail:i=>{e("getLocationInAliPay",`获取位置信息失败,错误信息:${JSON.stringify(i)}`,"error",i),t({isSuccess:!1,message:"获取位置信息失败,请联系湘易办相关技术人员"})}})}},z={executeImageChooseInBrowser(t,i,n){const{count:o,sizeType:a,sourceType:s}=i,{bResDataFormat:r}=n;if(C()||I()){const i={count:o||9,mediaType:["image"],sizeType:a||["original","compressed"],sourceType:s||["album"],success:i=>{i?.success&&t(r?r(i):i),e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行完毕,结果:${JSON.stringify(i)}`)},fail:t=>{e("executeChooseImageInWeChat",`微信/支付宝环境下执行选择图片API执行失败,结果:${JSON.stringify(t)}`)}};return void(I()?window.my.chooseImage(i):window.wx.chooseImage(i))}t({isSuccess:!1,code:-1,message:"目前环境暂不支持,敬请期待"})}},V={navigationCheck:!1,startNavigationInBrowser(t,i={}){const n=encodeURIComponent(window?.location?.href),{lat:o,lng:a,address:s,name:r,dinateType:c}=i;let l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${o}&longitude=${a}&address=${s}&name=${r}`;if(c&&"GCJ02"!==c){const e=P(i),{destinationLatitude:t,destinationLongitude:o}=e;l=`/pages/sdk/sdk?redirectUrl=${n}&type=navigation&latitude=${t}&longitude=${o}&address=${s}&name=${r}`}e("startNavigationInBrowser",`跳转目标URL:${l}`),C()?d(l,t):I()?u(l,t):(e("startNavigationInBrowser","导航功能无法在当前环境下执行"),t({isSuccess:!1,code:-1,message:"导航功能无法在当前环境下执行,请检查是否为微信/支付宝小程序的浏览器环境中"}))}},Q={wvInfo:null,isHarmony:!1,isCheckDevice:!1,async initMessage(...t){const i=t[0];await this.checkDeviceInfo(),await this.initVMInfo(t[2]),w()?window.addEventListener("message",t=>{e("initMessage",`浏览器webview接收到的消息内容,${JSON.stringify(t)}`,"log"),this.getMsgFromH5(t)}):(e("initMessage",`非浏览器中的webview接收到的消息内容,${JSON.stringify(i)}`,"log"),this.getMsgFromH5(i))},checkDeviceInfo(){this.isCheckDevice||(this.isCheckDevice=!0,uni.sendNativeEvent("System_getAppInfo",{},e=>{this.isHarmony=e?.platform?.toLowerCase().includes("harmony")}))},initVMInfo(t){if(!this.wvInfo)if(this.isHarmony)this.wvInfo=uni.createWebviewContext("webview",t);else try{this.wvInfo=t,t?.$scope?.$getAppWebview()&&(this.wvInfo=t.$scope.$getAppWebview().children()[0])}catch(t){e("initMessage","初始化消息模块,是否包含wvInfo:"+typeof this.wvInfo?.evalJS)}},getMsgFromH5(t={}){let i=this.getMsgDataFromH5(t);const{origin:n}=t||{},{href:o}=location||{};if(w()&&o?.includes(n))return!1;const{isH5Send:a,methodName:s,methodData:r}=i||{};return!!a&&(s?null==r?(e("getMsgFromH5","请传入需要执行的事件数据","warn"),!1):(e("getMsgFromH5",`需要执行的事件名称【${s}】,需要执行的事件数据【${JSON.stringify(r)}】,是否为H5发送的消息【${a}】`,"log"),void(this[s]?this.executeH5MethodName(s,i):e("getMsgFromH5",`【${s}】事件不存在`,"warn"))):(e("getMsgFromH5","请传入需要执行的事件名称","warn"),!1))},executeH5MethodName(t,i){const{msgId:n,methodData:o}=i;try{const i=this[t].toString();if(e("executeH5MethodName",`【${t}】方法定义:${i}`,"log"),i.includes("Promise"))return void this[t](o).then(i=>{e("executeH5MethodName",`${t}方法执行结果:${JSON.stringify(i)}`,"log");let o=i;try{o=JSON.parse(i)}catch(t){e("executeH5MethodName","强制给数据进行序列化失败","error",t)}this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:o,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}).catch(i=>{e("executeH5MethodName",`${t}方法执行失败`,"error",i),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法失败,具体错误信息,请查看控制台`})});this[t](o),this.postMsgToH5({msgId:n,sourceMethod:t,resultInfo:null,isWebviewSend:!0,resultMessage:`执行${t}方法完成`})}catch(i){e("getMsgFromH5",`${t}方法执行失败`,"error",i)}},postMsgToH5(t){const i=JSON.stringify(t);if(e("postMsgToH5",`消息内容:${i}`,"log"),w()){e("postMsgToH5","父页面运行在浏览器","log");document.querySelector("iframe").contentWindow.postMessage(JSON.stringify(i),"*")}else try{e("postMsgToH5","父页面运行在非浏览器","log"),this.wvInfo.evalJS(`getMessageFromWebview('${i}')`)}catch(t){e("postMsgToH5","执行浏览器的webview回传异常","error",t)}},getMsgDataFromH5(t){let i=null;const{data:n}=t;try{i=w()?n?.data?.arg?n?.data?.arg:n?.data?n.data:n:t.detail?.data[0]}catch(t){return e("getMsgDataFromH5","处理消息内容时发生异常","error",t),!1}return e("getMsgDataFromH5",`获取到的消息内容:${JSON.stringify(i)}`,"log"),i}},X=(t,i,n)=>{if(e("_parseFunction",`${JSON.stringify(t)}`),"function"==typeof t)return n[i]=t,void(t="[Function]::"+i);if("object"!=typeof t)return;let o=null;for(let e in t)switch(typeof t[e]){case"object":o=i?i+"_"+e:e,X(t[e],o,n);break;case"function":o=i?i+"_"+e:e,n[o]=t[e],t[e]="[Function]::"+o}},Y=e=>{let t=0;return"string"==typeof e?t=1:"number"==typeof e?t=2:"boolean"==typeof e?t=3:"function"==typeof e?t=4:e instanceof Array?t=6:"object"==typeof e&&(t=5),t},Z={appH5SendMsgToApp(e,t={},i={}){const{isWindowEv:n,moduleName:o,nativeEvName:a,isCustomEv:s}=t;if(n)return void this.h5SendMsgToAppByWindow(e,t,i);const r=s?"custom":o,c=s?"call":a;this.executeSendMsgToApp({resolveInfo:e,moduleName:r,eventName:c,actionName:a,dataInfo:i,isCustomEv:s,evConfig:t})},executeSendMsgToApp(i={}){const{moduleName:n,eventName:o,actionName:a,dataInfo:s,resolveInfo:r,isCustomEv:c,evConfig:l}=i||{},{description:u}=l,d=this;try{let i={};if(("object"==typeof s?Object.keys(s):[]).length>0&&(i=t(s)),c){const n=t(i);e("webviewSendMsgToApp",`${u}功能在是通过custom.call的方式调用,需要重新处理入参`),i.params=n,i.action=a}e("webviewSendMsgToApp",`${u}的完整参数:${JSON.stringify(i)}`),this.initEventCallbackEv(r,i,l);const m=function(){return d.formatBridgeData(window.c2[n][`${o}Callback`],arguments)}(i);e("webviewSendMsgToApp",`${u}功能在${f()}的Webview环境下执行,调用参数:${JSON.stringify(m)}`),this.h5SendMsgToAppByBrowser(r,l,m)}catch(t){console.log(`🚀发送消息给APP出现错误,错误信息:${t},${JSON.stringify(t)}`),e("webviewSendMsgToApp",`${u}执行数据处理失败`,"error",t)}},initEventCallbackEv(i,n,o={}){const{description:a,resDataFormat:s,resErrorFormat:r}=o;n.onSuccess=function(t){e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行完成`),i(s?s(t):t)},n.onFail=function(n){const o=t(n);e("webviewSendMsgToApp",`${a}功能在App的Webview环境下执行失败,收到的回调数据:::${JSON.stringify(o)}`),i(r?r(o):s?s(o):o)}},formatBridgeData(t,i){try{const n=Math.random().toString(32).slice(2),o=[];for(let e in i){const a=n+"_a"+e,s=i[e],r={};!1===/OpenHarmony ([5-9])|OpenHarmony (\d{2})/i.test(navigator.userAgent)&&X(s,a,r);for(let e in r)t[e]=r[e],this.C2ReceiveQueue.push(t);o.push({type:Y(s),name:a,value:s})}return e("formatBridgeData",`格式化后的参数:${JSON.stringify(o)}`),{params:o,id:n}}catch(t){e("formatBridgeData","消息通讯数据格式化异常","error",t)}},h5SendMsgToAppByWindow(t,i={},n={}){const{nativeEvName:o,description:s,resDataFormat:r}=i,c=f(),l=`${o}Back`;let u=n;e("h5SendMsgToAppByWindow",`给【${c}】APP发送【${s}】-【${o}】事件调用,回调函数名称:【${l}】`,"log"),window[l]=i=>{let n=i;e("h5SendMsgToAppByWindow",`收到【${c}】APP发送的${s}事件调用的回调值:${JSON.stringify(n)},回调数据类型::${typeof n}`,"log"),n=a(n),t(r?r(n):n)},setTimeout(()=>{"ios"!==c.toLowerCase()?"android"!==c.toLowerCase()?window.harmony[o](u):window.android[o](u):window.webkit.messageHandlers[o].postMessage(u)},100)},h5SendMsgToAppByBrowser(t,i={},n={}){const o=f();e("h5SendMsgToAppByBrowser",`给【${o}】APP发送【${i.nativeEvName}】事件调用,入参:${JSON.stringify(n)}`,"log");const{nativeEvName:a,moduleName:s,isCustomEv:r}=i,{id:c,params:l}=n;if("android"!==o)return"ios"===o?(this.iosCallBackList.push({id:c,resolveInfo:t,configInfo:i}),void this.h5SendMsgToIOS(c,s,a,l,r)):void("harmony"===o&&this.h5SendMsgToHarmony(c,s,a,l,r));this.h5SendMsgToAndroid(c,s,a,l,r)},h5SendMsgToAndroid(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToAndroid",`发送给安卓APP的消息:${JSON.stringify(s)}`),JSON.parse(window.AndroidFunction.callAndroidFun(JSON.stringify(s)))},h5SendMsgToIOS(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToIOS",`发送给IOS APP的消息:${JSON.stringify(s)}`),JSON.parse(prompt(JSON.stringify(s)))},h5SendMsgToHarmony(t,i,n,o,a){const s={id:t,module:a?"custom":i,method:a?"call":n,parameters:o};return e("h5SendMsgToHarmony",`发送给鸿蒙APP的消息:${JSON.stringify(s)}`),JSON.parse(window.harmonyFunction.callHarmonyFun(s))}},ee={msgList:[],msgStack:[],async miniAppH5SendMsgToApp(t,i,n){try{e("miniAppH5SendMsgToApp",`发送消息给webview:${i}`,"log");const o=await this.sendMsgToMiniApp({methodName:i,methodData:n});t(o?.resultInfo)}catch(n){e("miniAppH5SendMsgToApp",`执行${i}失败`,"error",n),t({isSuccess:!1,message:"执行事件失败,详情查看控制台"})}},sendMsgToMiniApp(t){return new Promise((n,o)=>{e("postMsgToWebview",`消息内容:${JSON.stringify(t)}`,"log");const{methodName:a,methodData:s}=t||{};if(!a)return void e("postMsgToWebview","请传入要调用的事件名称","warn");if(!s)return void e("postMsgToWebview","请传入要调用事件的数据信息","warn");const r=i(),c={data:{msgId:r,isH5Send:!0,...t}};if(this.msgList.push({id:r,resolveInfo:n,rejectInfo:o}),e("postMsgToWebview",`发送消息给父容器页面:${JSON.stringify(c)}`,"log"),!this.uniSDKInit)return e("postMsgToWebview","SDK尚未初始化完成,先行执行堆栈","log"),void this.msgStack.push({id:i(),msgContent:c,resolve:n,reject:o});uni?.webView?.postMessage?uni.webView.postMessage(c):uni?.postMessage(c)}).catch(t=>{e("postMsgToWebview","发生异常","error",t)})}},te={getMessageFromWebview(t,i=!1){let n={};try{n=i?t:t?.data||"{}",n=a(n)}catch(t){e("getMessageFromWebview","解析数据异常","error",t)}if(e("getMessageFromWebview",`是否为webview发送的消息内容:${n?.isWebviewSend},消息内容:${JSON.stringify(n)}`,"log"),!n?.isWebviewSend)return;const{msgId:o}=n,s=this.msgList.findIndex(e=>e.id===o);if(-1===s)return;const r=this.msgList[s],{resolveInfo:c}=r;c(n),this.msgList.splice(s,1)}},ie=["getLoginUserInfo","getAuthToken"];let ne=new class{version="";isInit=!1;isWebviewPage=!1;anaSDKInit=!1;uniSDKInit=!1;weChatInit=!1;alipayInit=!1;iosCallBackList=[];C2ReceiveQueue=[];autoUpdate=!0;autoConfigMenuBtn=!0;weChatConfigReady=!1;constructor(e,t){this.version=e,this.isInit=!1,this.isWebviewPage=t,this.iosCallBackList=[],this.initModuleMethod(),this.initSDKAPI(),this.initDefaultConfig()}initModuleMethod(){n(T,this),n(J,this),n(W,this),n(K,this),n(R,this),n(j,this),n(U,this),n(Q,this),n(z,this),n(Z,this),n(G,this),n(V,this),n(te,this),n(ee,this)}init(t){e("init","SDK初始化任务执行处理"),w()?(N()&&this.initWebviewMsgFormat(),this.initSDKScriptFile(),this.trackSDKInit(t)):e("init","当前环境非浏览器环境,无需执行初始化动作","warn")}initSDKScriptFile(){e("initSDKScriptFile","挂载第三方SDK脚本文件"),this.initUNISDK(),C()?this.initWeChatSDK():this.initAliPaySDK()}initWebviewMsgFormat(){e("initWebviewMsgFormat","初始化被嵌套的页面消息通讯","log"),w()?(window.addEventListener("message",t=>{e("initWebviewMsgFormat","浏览器消息处理","log"),this.getMessageFromWebview(t)}),window.getMessageFromWebview=t=>{e("initWebviewMsgFormat","事件注入消息处理","log"),this.getMessageFromWebview(t,!0)}):e("initWebviewMsgFormat","该API仅支持在被webview嵌套的H5页面中使用","error","")}initUNISDK(){w()&&(M()||l("https://mobile.zwfw.hunan.gov.cn:8088/uni.webview.1.5.6.js","UNI").then(()=>{M()&&(this.uniSDKInit=!0,e("initUNISDK","UNI Webview SDK 挂载完成"))}))}initWeChatSDK(){if(e("initWeChatSDK","初始化weChat SDK"),w())return $()?(this.initWeChatConfig(),void e("initWeChatSDK","WeChat SDK已挂载完成,无需二次挂载")):void l("https://res.wx.qq.com/open/js/jweixin-1.6.0.js","微信").then(t=>{$()&&(this.weChatInit=!0,this.initWeChatConfig(),e("initWeChatSDK","WeChat SDK挂载完成"))})}initWeChatConfig(){this.weChatConfigReady||wx.request({url:`${O}/api/auth/wechat/v1/getJsapiTicket`,method:"POST",data:{url:window.location.href.split("#")[0]},success:t=>{const i=t?.data?.data;this.weChatConfigReady=!0,e("getLocationInWeChat","获取签名信息完成"),window?.wx?.config({appId:"wx44bc5d5e34ac0c01",timestamp:i?.timestamp,nonceStr:i?.noncestr,signature:i?.signature,jsApiList:["getLocation","openLocation","chooseImage","chooseFile","scanQRCode","previewImage","downloadImage"]}),this.checkLocationEvStation()},fail:t=>{e("initWeChatConfig",`获取签名信息失败,信息是:${JSON.stringify(t)}`)}})}initAliPaySDK(){e("initAliPaySDK","初始化Alipay SDK"),w()&&(A()||I()&&l("https://appx/web-view.min.js","支付宝").then(t=>{A()&&(this.alipayInit=!0,e("initAliPaySDK","Alipay SDK挂载完成"))}))}initSDKAPI(){S()&&(e("initSDKAPI","App的Webview环境,初始化C2调用链的回调函数"),this.initMobileBridgeGlobalConfig()),e("initSDKAPI","开始初始化SDK API"),k.forEach(t=>{const{eventName:i,moduleName:n,nativeEvName:o,isCustomEv:a}=t;if((n&&o||a)&&S()&&(e("initSDKAPI",`初始化C2调用链的回调函数:${i}`),this.checkMobileModuleBack(n,o,a)),!ie?.includes(i))try{this[i]=e=>new Promise(i=>{this.normalEvDataTransition(i,e,t)})}catch(t){e("initSDKAPI","执行API初始化挂载异常","error",t)}})}normalEvDataTransition(t,i={},n={}){const{eventName:o,description:a,reqDataFormat:s}=n||{},r=f();let c=i;if(s&&(c=s(i)),c)return S()?(e("normalEvDataTransition",`开始调用APP的嵌套H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.appH5SendMsgToApp(t,n,c)):y()?(e("normalEvDataTransition",`开始调用小程序/H5嵌套的H5能力,事件名称:${o},入参:${JSON.stringify(c)}`),void this.miniAppH5SendMsgToApp(t,o,c,a)):void(C()||I()?this.executeBrowserEvent(t,c,i,n):this.executeEvByNative(t,c,n));e(o,`给【${r}】APP发送【${a}】-【${o}】事件失败,请检查数据格式是否正确`,"error")}executeEvByNative(t,i,n){const{description:o,uniEvName:a,eventName:r,nativeResFormat:c}=n;try{e("executeEvByNative",`开始调用原生${o}的能力,API名称:${a},格式化前的参数信息:${JSON.stringify(i)}`),uni.sendNativeEvent(a,i,async i=>{e("executeEvByNative",`调用原生${o}的能力完成,结果:${JSON.stringify(i)}`,"log");let n=i;c&&(n=c(n),e("executeEvByNative",`调用原生${o}的能力完成,格式化后的结果:${JSON.stringify(n)}`,"log")),"fileDownload"===r&&i.isSuccess&&s(t,n),"getLocationInfo"!==r?"fileDownload"!==r&&s(t,n):uni.sendNativeEvent("System_getAppInfo",{},e=>{if(e.platform.toLowerCase().includes("harmony")){const e=((e,t)=>{const i=3.141592653589793,n=6378245,o=.006693421622965943;if(((e,t)=>t<72.004||t>137.8347||e<.8293||e>55.8271)(t,e))return[e,t];let a=b(e-105,t-35),s=D(e-105,t-35);const r=t/180*i;let c=Math.sin(r);c=1-o*c*c;const l=Math.sqrt(c);return a=180*a/(n*(1-o)/(c*l)*i),s=180*s/(n/l*Math.cos(r)*i),{lat:t+a,lng:e+s}})(i?.location?.longitude,i?.location?.latitude);n.location.longitude=e?.lng,n.location.latitude=e?.lat}s(t,n)})})}catch(i){t({isSuccess:!1,message:`${o}API执行失败,具体错误信息请查看控制台`}),e("executeEvByNative",`${o}API执行异常`,"error",i)}}initDefaultConfig(){e("initDefaultConfig","默认胶囊按钮配置执行初始化处理"),this.autoUpdate?this.resetMenuBtnConfig():e("initDefaultConfig","业务侧配置无需自动重置胶囊按钮,不至于页面切换事件监听")}}(F,N());return w()&&(window.xybAgent=ne),ne});
|