@haluo/util 2.0.33 → 2.0.34

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.
Files changed (38) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +23 -19
  3. package/dist/modules/app-call/configs.d.ts +9 -0
  4. package/dist/modules/app-call/configs.js +44 -0
  5. package/dist/modules/app-call/core.d.ts +53 -0
  6. package/dist/modules/app-call/core.js +175 -0
  7. package/dist/modules/app-call/extensions.d.ts +187 -0
  8. package/dist/modules/app-call/extensions.js +1297 -0
  9. package/dist/modules/app-call/index.d.ts +16 -0
  10. package/dist/modules/app-call/index.js +84 -0
  11. package/dist/modules/app-call/offline.d.ts +12 -0
  12. package/dist/modules/app-call/offline.js +191 -0
  13. package/dist/modules/app-call/types.d.ts +67 -0
  14. package/dist/modules/app-call/types.js +4 -0
  15. package/dist/modules/cookie/index.js +22 -17
  16. package/dist/modules/date/index.js +54 -48
  17. package/dist/modules/dom/index.js +21 -15
  18. package/dist/modules/filter/index.js +14 -8
  19. package/dist/modules/format/index.js +9 -5
  20. package/dist/modules/match/index.js +8 -5
  21. package/dist/modules/monitor/lib/jsError.js +27 -38
  22. package/dist/modules/monitor/lib/timing.js +15 -17
  23. package/dist/modules/monitor/lib/xhr.js +26 -25
  24. package/dist/modules/monitor/utils/tracker.js +22 -10
  25. package/dist/modules/number/index.js +33 -30
  26. package/dist/modules/open-app/index.d.ts +3 -7
  27. package/dist/modules/open-app/index.js +52 -62
  28. package/dist/modules/sentry/index.js +16 -12
  29. package/dist/modules/tools/index.js +164 -154
  30. package/dist/modules/track/index.d.ts +122 -0
  31. package/dist/modules/track/index.js +421 -0
  32. package/dist/modules/track/types.d.ts +108 -0
  33. package/dist/modules/track/types.js +4 -0
  34. package/dist/modules/upload/aliOss.d.ts +52 -5
  35. package/dist/modules/upload/aliOss.js +589 -378
  36. package/dist/modules/upload/index.js +32 -29
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +27 -2
@@ -0,0 +1,1297 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ /**
13
+ * 创建所有扩展方法
14
+ */
15
+ export function createAllExtensions(appCall, config) {
16
+ var _a;
17
+ var core = appCall.__core || appCall;
18
+ var iOSInterface = ((_a = core.getIOSInterface) === null || _a === void 0 ? void 0 : _a.call(core)) || '';
19
+ // 直接使用已初始化的全局变量,避免重复计算
20
+ var isIOS = window.isIOS || false;
21
+ var isAndroid = window.isAndroid || false;
22
+ var isHarmonyos = window.isHarmonyos || false;
23
+ var showTip = config.showTip || false;
24
+ var fileToHttps = config.fileToHttps || (function (url) { return url; });
25
+ var extensions = {
26
+ // ========== action 相关 ==========
27
+ // 订单地址确认
28
+ selectDeliveryAddress: function (data) {
29
+ console.log('selectDeliveryAddress');
30
+ return appCall.call('selectDeliveryAddress', JSON.stringify(data));
31
+ },
32
+ // 支付成功
33
+ paySuccess: function (on) {
34
+ return appCall.call('success', !!on);
35
+ },
36
+ // 支付
37
+ pay: function (params) {
38
+ var _a;
39
+ if (params === void 0) { params = {}; }
40
+ params =
41
+ (params && {
42
+ method: params.method || 'wx',
43
+ orderId: params.orderId || '',
44
+ orderNumber: params.orderNumber || '',
45
+ hbNum: params.hbNum || '',
46
+ uid: JSON.parse(((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.user) || '{}').uid || ''
47
+ }) ||
48
+ {};
49
+ return appCall.call('pay', JSON.stringify(params), window.bridge.payCallback || function () { });
50
+ },
51
+ // 支付(新版本)
52
+ payNew: function (params) {
53
+ if (params === void 0) { params = {}; }
54
+ params =
55
+ (params && {
56
+ orderNumber: params.orderNumber || '',
57
+ channelCode: params.channelCode || '',
58
+ wayCode: params.wayCode || ''
59
+ }) ||
60
+ {};
61
+ return appCall.call('payNew', JSON.stringify(params), window.bridge.payNewCallback || function () { });
62
+ },
63
+ // ========== 基础接口 ==========
64
+ // 弹出提示
65
+ alert: function (text) {
66
+ var textStr = typeof text === 'object' ? JSON.stringify(text) : text + '';
67
+ if (((isAndroid || isHarmonyos) && !window.NativeCall) ||
68
+ (isIOS && !iOSInterface)) {
69
+ console.log('AppCall.alert:', textStr);
70
+ }
71
+ return appCall.call('alert', textStr);
72
+ },
73
+ // 隐藏标题(废弃)
74
+ hideTitle: function (on) {
75
+ return appCall.call('hideTitle', !!on);
76
+ },
77
+ // 隐藏标题
78
+ setHeadState: function (type) {
79
+ return appCall.call('setHeadState', type);
80
+ },
81
+ // 打开webView
82
+ open: function (url, title) {
83
+ if (title === void 0) { title = config.projectName; }
84
+ return appCall.call('open', url, title);
85
+ },
86
+ // 关闭webView
87
+ close: function () {
88
+ return appCall.call('close');
89
+ },
90
+ // 返回,负数后退,正数前进
91
+ back: function (step) {
92
+ return appCall.call('back', step);
93
+ },
94
+ // 打开appstore
95
+ openAppStoreUrl: function (params) {
96
+ return appCall.call('openAppStoreUrl', JSON.stringify(params));
97
+ },
98
+ // 打开三方app
99
+ openOtherAppUrlRouter: function (params) {
100
+ var _a, _b, _c, _d;
101
+ var env = config.env || {};
102
+ var isIOS = window.isIOS;
103
+ if ((_a = params.appUrlRouter) === null || _a === void 0 ? void 0 : _a.includes('58moto')) {
104
+ params.appScheme = params.appScheme || (isIOS ? env.motoIOSScheme : env.motoAndroidScheme);
105
+ params.appStoreUrl = params.appStoreUrl || (isIOS ? env.APPLINKIOS : env.APPLINK);
106
+ params.appBundleId = params.appBundleId || env.bundleId;
107
+ }
108
+ else if (((_b = params.appUrlRouter) === null || _b === void 0 ? void 0 : _b.includes('emotofine')) || window.isEmotofine) {
109
+ params.appScheme = params.appScheme || (isIOS ? env.emotofineIOSScheme : env.emotofineAndroidScheme);
110
+ params.appStoreUrl = params.appStoreUrl || (isIOS ? env.EMOTOFINEAPPLINKIOS : env.EMOTOFINEAPPLINK);
111
+ params.appBundleId = params.appBundleId || env.emotofineBundleId;
112
+ }
113
+ else if (((_c = params.appUrlRouter) === null || _c === void 0 ? void 0 : _c.includes('biaofine')) || window.isBiaofine) {
114
+ params.appScheme = params.appScheme || (isIOS ? env.biaofineIOSScheme : env.biaofineAndroidScheme);
115
+ params.appStoreUrl = params.appStoreUrl || (isIOS ? env.BIAOFINEAPPLINKIOS : env.BIAOFINEAPPLINK);
116
+ params.appBundleId = params.appBundleId || env.biaofineBundleId;
117
+ }
118
+ else if (((_d = params.appUrlRouter) === null || _d === void 0 ? void 0 : _d.includes('dronefine')) || window.isdronefine) {
119
+ params.appScheme = params.appScheme || (isIOS ? env.dronefineIOSScheme : env.dronefineAndroidScheme);
120
+ params.appStoreUrl = params.appStoreUrl || (isIOS ? env.dronefineAPPLINKIOS : env.dronefineAPPLINK);
121
+ params.appBundleId = params.appBundleId || env.dronefineBundleId;
122
+ }
123
+ else {
124
+ params.appScheme = params.appScheme || (isIOS ? config.iosScheme : config.androidScheme);
125
+ params.appStoreUrl = params.appStoreUrl || (isIOS ? config.appStoreUrl : config.androidStoreUrl);
126
+ params.appBundleId = params.appBundleId || config.bundleId;
127
+ }
128
+ console.log('openOtherAppUrlRouter', params);
129
+ return appCall.call('openOtherAppUrlRouter', JSON.stringify(params));
130
+ },
131
+ // 通过浏览器打开三方页面 openPageInBrowser(url)
132
+ openPageInBrowser: function (url) {
133
+ var params = {
134
+ appStoreUrl: url
135
+ };
136
+ return appCall.call('openOtherAppUrlRouter', JSON.stringify(params));
137
+ },
138
+ // 设置页面标题
139
+ setTitle: function (title) {
140
+ if (title === void 0) { title = ''; }
141
+ setTimeout(function () {
142
+ return appCall.call('setTitle', title);
143
+ }, 100);
144
+ },
145
+ // 打开在线客服
146
+ haloService: function (params) {
147
+ if (params === void 0) { params = ''; }
148
+ return appCall.call('haloService', params);
149
+ },
150
+ // 打开七鱼客服
151
+ qiyuService: function (params) {
152
+ if (params === void 0) { params = {}; }
153
+ return appCall.call('qiyuService', JSON.stringify(params));
154
+ },
155
+ // 通知客户端投票成功
156
+ voteSuccess: function (params) {
157
+ if (params === void 0) { params = {}; }
158
+ return appCall.call('voteSuccess', JSON.stringify(params));
159
+ },
160
+ // 打开款型图片页面
161
+ openMotorStylePhotosPage: function (carData) {
162
+ return appCall.call('openMotorStylePhotosPage', JSON.stringify(carData));
163
+ },
164
+ // 查看大图
165
+ seeImageViewer: function (imageData) {
166
+ return appCall.call('seeImageViewer', JSON.stringify(imageData));
167
+ },
168
+ // 保存图片
169
+ saveImg: function (imgUrl) {
170
+ return appCall.call('saveImg', imgUrl);
171
+ },
172
+ // 保存图片传base64
173
+ saveImgData: function (imgUrl, callback) {
174
+ Object.assign((window.bridge = window.bridge || {}), {
175
+ saveImgDataCallback: function (res) {
176
+ if (typeof callback === 'function') {
177
+ callback(res);
178
+ }
179
+ }
180
+ });
181
+ return appCall.call('saveImgData', imgUrl, window.bridge.saveImgDataCallback);
182
+ },
183
+ // 修改分享
184
+ modifyShare: function (data, callback) {
185
+ Object.assign((window.bridge = window.bridge || {}), {
186
+ modifyShareDataCallback: function (res) {
187
+ if (typeof callback === 'function') {
188
+ callback(res);
189
+ }
190
+ }
191
+ });
192
+ return appCall.call('modifyShare', JSON.stringify(data), window.bridge.modifyShareDataCallback);
193
+ },
194
+ // 初始化口碑信息(计划废弃)
195
+ carDetail: function (detail) {
196
+ var me = appCall;
197
+ var carDetail = JSON.stringify(detail);
198
+ carDetail = JSON.parse(carDetail);
199
+ setTimeout(function () {
200
+ return me.call('carDetail', JSON.stringify(carDetail));
201
+ }, 100);
202
+ },
203
+ // 发布动态,跳转原生圈子发布页面
204
+ newCircle: function (obj) {
205
+ if (!config.getCircleIdByName) {
206
+ console.warn('getCircleIdByName not provided in config');
207
+ return;
208
+ }
209
+ config
210
+ .getCircleIdByName({
211
+ title: obj.name
212
+ })
213
+ .then(function (res) {
214
+ obj.id = res.id;
215
+ obj.shortType = res.type;
216
+ obj.activityName = obj.activityName || config.projectName;
217
+ obj.activityImage =
218
+ obj.activityImage || config.defaultImage || "https://wap.".concat(config.domain, "/static/img/common/motuofan_small.png");
219
+ obj.activityLink = obj.activityLink || location.href;
220
+ var params = JSON.stringify(obj);
221
+ params = JSON.parse(params);
222
+ console.log('话题信息:', params);
223
+ return appCall.call('newCircle', JSON.stringify(params), window.bridge.circleRelease || function () { });
224
+ })
225
+ .catch(function (err) {
226
+ console.log(err);
227
+ });
228
+ },
229
+ // 发布手表体验(iwc_wap 特有)
230
+ publishWatchExperience: function (obj) {
231
+ var params = JSON.stringify(obj);
232
+ params = JSON.parse(params);
233
+ return appCall.call('newCircle', JSON.stringify(params), window.bridge.circleRelease || function () { });
234
+ },
235
+ // 打开app指定页面
236
+ navigate: function (action) {
237
+ if (action === void 0) { action = {}; }
238
+ action = Object.assign({
239
+ relationType: action.type,
240
+ id: action.id,
241
+ name: action.name || action.subject || '',
242
+ content: action.name || action.content || '',
243
+ relatedType: action.relatedType || '',
244
+ relatedId: action.action || '',
245
+ link: action.link || '',
246
+ jumpUrl: fileToHttps(action.jumpUrl) || '',
247
+ urlParam: action.urlParam || {},
248
+ frompage: action.frompage || ''
249
+ }, action);
250
+ console.log(action);
251
+ return appCall.call('navigate', JSON.stringify(action), window.bridge.navigateRelease || function () { });
252
+ },
253
+ // 根据能量活动跳转指定页面
254
+ navigateByEnergy: function (action) {
255
+ if (action && action.type) {
256
+ action.relationType = action.type;
257
+ return appCall.call('navigateByEnergy', JSON.stringify(action), window.bridge.messageRelease || function () { });
258
+ }
259
+ },
260
+ // 跳转指定页面或链接,返回当前页面需告知H5
261
+ messageInteraction: function (action) {
262
+ if (action === void 0) { action = {}; }
263
+ action = Object.assign({
264
+ type: action.type,
265
+ orderType: action.orderType,
266
+ relationType: action.relationType,
267
+ id: action.id,
268
+ link: action.link || '',
269
+ orderNum: action.orderNum,
270
+ shopId: action.shopId
271
+ });
272
+ return appCall.call('messageInteraction', JSON.stringify(action), window.bridge.messageRelease || function () { });
273
+ },
274
+ // 获取预约价格
275
+ getReservePrice: function (action) {
276
+ if (action === void 0) { action = {}; }
277
+ action = Object.assign({
278
+ shopId: action.shopId,
279
+ shopName: action.shopName,
280
+ address: action.address,
281
+ latitude: action.latitude,
282
+ longitude: action.longitude,
283
+ city: action.city,
284
+ province: action.province,
285
+ typeId: action.typeId,
286
+ shopLevel: action.shopLevel,
287
+ mobile: action.mobile,
288
+ trialRunFlag: action.trialRunFlag,
289
+ provinceName: action.provinceName,
290
+ cityName: action.cityName,
291
+ districtName: action.districtName,
292
+ brandDTOS: action.brandDTOS,
293
+ lon: action.lon,
294
+ lat: action.lat
295
+ });
296
+ return appCall.call('getReservePrice', JSON.stringify(action));
297
+ },
298
+ // 解密商家电话
299
+ decryptAgencyPhone: function (action) {
300
+ if (action === void 0) { action = {}; }
301
+ action = Object.assign({
302
+ shopId: action.shopId
303
+ });
304
+ return appCall.call('decryptAgencyPhone', JSON.stringify(action));
305
+ },
306
+ // 预约试驾
307
+ bookTestDrive: function (action) {
308
+ if (action === void 0) { action = {}; }
309
+ action = Object.assign({
310
+ shopId: action.shopId,
311
+ shopName: action.shopName,
312
+ address: action.address,
313
+ latitude: action.latitude,
314
+ longitude: action.longitude,
315
+ city: action.city,
316
+ province: action.province,
317
+ typeId: action.typeId,
318
+ shopLevel: action.shopLevel,
319
+ mobile: action.mobile,
320
+ trialRunFlag: action.trialRunFlag,
321
+ provinceName: action.provinceName,
322
+ cityName: action.cityName,
323
+ districtName: action.districtName,
324
+ brandDTOS: action.brandDTOS,
325
+ lon: action.lon,
326
+ lat: action.lat
327
+ });
328
+ return appCall.call('bookTestDrive', JSON.stringify(action));
329
+ },
330
+ // 获取有赞accesstoken
331
+ getYZAccessToken: function () {
332
+ return appCall.call('getYZAccessToken');
333
+ },
334
+ // 调用App弹出分享组件
335
+ openShareLayer: function (type) {
336
+ return appCall.call('openShareLayer', type);
337
+ },
338
+ // 调用App弹出分享组件(新版本)
339
+ openNewShareLayer: function (type) {
340
+ return appCall.call('openNewShareLayer', type);
341
+ },
342
+ // 打开app发布车辆口碑页面
343
+ openCarScore: function (params) {
344
+ params = {
345
+ id: params.id,
346
+ carId: params.carId
347
+ };
348
+ return appCall.call('openCarScore', JSON.stringify(params), window.bridge.openCarScoreRelease || function () { });
349
+ },
350
+ // 分享功能
351
+ share: function (params) {
352
+ if (params === void 0) { params = {}; }
353
+ var image = document.querySelectorAll('img')[2];
354
+ var shareParams = {
355
+ show: params.show === undefined || params.show === true,
356
+ title: params.title || config.projectName,
357
+ desc: params.desc || config.defaultDesc || "".concat(config.projectName, "\uFF0C\u6469\u6258\u53D1\u70E7\u53CB\u7684\u4EA4\u6D41\u7684\u5E73\u53F0\u3002"),
358
+ image: params.image ||
359
+ (image && image.src.replace('halomoto', 'http')) ||
360
+ config.defaultImage ||
361
+ "https://wap.".concat(config.domain, "/static/img/common/motuofan_small.png"),
362
+ url: fileToHttps(params.url || window.location.href),
363
+ eventId: params.eventId || '',
364
+ extend: params.extend || {},
365
+ pageId: params.pageId || '',
366
+ realityType: params.reality_type || '',
367
+ reality_type: params.reality_type || '',
368
+ reality_id: params.reality_id || '',
369
+ realityId: params.reality_id || ''
370
+ };
371
+ setTimeout(function () {
372
+ var reset = shareParams.title !== config.projectName || shareParams.show === false;
373
+ if (reset) {
374
+ post();
375
+ }
376
+ }, 100);
377
+ function post() {
378
+ var callback = isIOS ? window.bridge.shareSuccess : function () { };
379
+ return appCall.call('share', JSON.stringify(shareParams), callback);
380
+ }
381
+ },
382
+ // 分享(指定类型)
383
+ goShare: function (params) {
384
+ return appCall.call('goShare', JSON.stringify(params));
385
+ },
386
+ // 分享传base64
387
+ goShareImageData: function (params) {
388
+ return appCall.call('goShareImageData', JSON.stringify(params));
389
+ },
390
+ // 仅分享文本
391
+ shareText: function (params) {
392
+ return appCall.call('shareText', JSON.stringify(params));
393
+ },
394
+ // 分享活动
395
+ shareActivity: function (id) {
396
+ id = parseInt(id + '');
397
+ setTimeout(function () {
398
+ post();
399
+ }, 100);
400
+ function post() {
401
+ return appCall.call('shareActivity', id);
402
+ }
403
+ },
404
+ // 调用客户端举报(emotofine_wap, dronefine_wap)
405
+ report: function (params) {
406
+ return appCall.call('report', JSON.stringify(params));
407
+ },
408
+ // 车辆认证
409
+ vehicleCertification: function (params) {
410
+ if (params) {
411
+ return appCall.call('vehicleCertification', JSON.stringify(params), window.bridge.vehicleCertificationRelease || function () { });
412
+ }
413
+ else {
414
+ return appCall.call('vehicleCertification', window.bridge.vehicleCertificationRelease || function () { });
415
+ }
416
+ },
417
+ /**
418
+ * ios 打开上传图片,解决ios黑版本的选择图片问题,现已没有此问题,暂时不用
419
+ * type = all img\all 弹出上传图片或预览, img直接上传
420
+ * num = 1个数 ,限制 1
421
+ */
422
+ iosOpenInput: function (params) {
423
+ return appCall.call('iosOpenInput', window.bridge.iosOpenInputRelease || function () { });
424
+ },
425
+ // 打开上传图片
426
+ getOSPhotosWithCount: function (params) {
427
+ if (isIOS) {
428
+ return appCall.call('getOSPhotosWithCount', JSON.stringify(params), window.bridge.getOSPhotosWithCountRelease || function () { });
429
+ }
430
+ else {
431
+ return appCall.call('getOSPhotosWithCount', JSON.stringify(params));
432
+ }
433
+ },
434
+ // 调用相机
435
+ setOSPhotosSelectType: function (params) {
436
+ return appCall.call('setOSPhotosSelectType', JSON.stringify(params));
437
+ },
438
+ // 调用原生评论
439
+ goToComment: function (params) {
440
+ return appCall.call('toComment', JSON.stringify(params), window.bridge.updataCircleRelease || function () { });
441
+ },
442
+ // 发送各种详情接口
443
+ informationData: function (detail) {
444
+ var me = appCall;
445
+ setTimeout(function () {
446
+ return me.call('informationData', JSON.stringify(detail), window.bridge.updataCircleRelease || function () { });
447
+ }, 100);
448
+ },
449
+ // 设置加密
450
+ setEncryption: function (params) {
451
+ appCall.allParamsToString(params);
452
+ return new Promise(function (resolve, reject) {
453
+ window.bridge.setEncryptionRelease = function (sign) {
454
+ return resolve(sign);
455
+ };
456
+ appCall.call('setEncryption', JSON.stringify(params), window.bridge.setEncryptionRelease);
457
+ });
458
+ },
459
+ // 地图定位
460
+ mapNavigation: function (params) {
461
+ return appCall.call('mapNavigation', JSON.stringify(params));
462
+ },
463
+ // 展示地图导航
464
+ showMapNavigation: function (params) {
465
+ return appCall.call('showMapNavigation', JSON.stringify(params));
466
+ },
467
+ // 导航右侧区域功能
468
+ navigationRightArea: function (params) {
469
+ return appCall.call('navigationRightArea', JSON.stringify(params));
470
+ },
471
+ // 上传视频操作
472
+ uploadVideo: function (params) {
473
+ return appCall.call('uploadVideo', JSON.stringify(params), window.bridge.uploadVideoRelease || function () { });
474
+ },
475
+ // 调用app的选择省市
476
+ getProvinces: function (params) {
477
+ return appCall.call('getProvinces', JSON.stringify(params), window.bridge.provincesRelease || function () { });
478
+ },
479
+ // 开启系统定位权限
480
+ setLocationPermission: function () {
481
+ return appCall.call('locationPermission', window.bridge.locationPermissionRelease || function () { });
482
+ },
483
+ // 通知app发送时长埋点
484
+ postDurationTack: function (params) {
485
+ var me = appCall;
486
+ setTimeout(function () {
487
+ return me.call('postDurationTack', JSON.stringify(params));
488
+ }, 100);
489
+ },
490
+ // 跳转私信详情页面
491
+ goPersonalLetter: function (params) {
492
+ return appCall.call('goPersonalLetter', JSON.stringify(params));
493
+ },
494
+ // 发送通知消息
495
+ notificationMessage: function (params) {
496
+ return appCall.call('notificationMessage', JSON.stringify(params));
497
+ },
498
+ // 发送消息,告知app已经是安全官
499
+ setSafetyStatus: function () {
500
+ return appCall.call('setSafetyStatus');
501
+ },
502
+ // 发送消息,让app刷新商城列表
503
+ setRefreshShopOrder: function () {
504
+ return appCall.call('refreshShopOrder');
505
+ },
506
+ // 调app激励抽奖
507
+ requestAdvideo: function (action) {
508
+ if (action === void 0) { action = {}; }
509
+ return appCall.call('requestAdvideo', JSON.stringify(action), window.bridge.adVideoPlayedRelease || function () { });
510
+ },
511
+ // 打开外部商品链接
512
+ openMall: function (action) {
513
+ if (action === void 0) { action = {}; }
514
+ return appCall.call('openMall', JSON.stringify(action));
515
+ },
516
+ // 一口价客服
517
+ priceCustomerService: function (params) {
518
+ if (params === void 0) { params = {}; }
519
+ return appCall.call('priceCustomerService', JSON.stringify(params));
520
+ },
521
+ // 商家微信复制弹框
522
+ shopWechat: function (params) {
523
+ if (params === void 0) { params = {}; }
524
+ return appCall.call('shopWechat', JSON.stringify(params));
525
+ },
526
+ // 获取活动广告留资信息
527
+ getQueryInfo: function (callback) {
528
+ function _callback(data) {
529
+ if (data) {
530
+ data = JSON.parse(data) || '';
531
+ }
532
+ if (typeof callback === 'function') {
533
+ callback(data);
534
+ }
535
+ }
536
+ window.bridge.getQueryInfoCallback = _callback;
537
+ return appCall.call('getQueryInfo', isIOS ? _callback : window.bridge.getQueryInfoCallback);
538
+ },
539
+ // 保存活动广告留资信息
540
+ saveQueryInfo: function (params) {
541
+ params.mobile = (params.mobile || '') + '';
542
+ return appCall.call('saveQueryInfo', JSON.stringify(params));
543
+ },
544
+ // 跳转到发布文章
545
+ jumpToReleaseStory: function (params) {
546
+ if (params === void 0) { params = {}; }
547
+ return params.actId || params.type === 'article_detail'
548
+ ? appCall.call('jumpToReleaseStory', JSON.stringify(params))
549
+ : appCall.call('jumpToReleaseStory');
550
+ },
551
+ // 跳转到发布文章(ugc 活动)
552
+ jumpToReleaseStoryUgc: function (params) {
553
+ if (params === void 0) { params = {}; }
554
+ return appCall.call('jumpToReleaseStoryUgc', JSON.stringify(params), window.bridge.handleUGCRefreshPageEvent || function () { });
555
+ },
556
+ // 跳转到发布视频
557
+ jumpToReleaseVideo: function (params) {
558
+ if (params === void 0) { params = {}; }
559
+ return appCall.call('jumpToReleaseVideo', JSON.stringify(params));
560
+ },
561
+ /**
562
+ * 改变电池栏颜色
563
+ * type(1、黑色;2、白色)
564
+ */
565
+ changeStatusBarColor: function (params) {
566
+ if (params === void 0) { params = {}; }
567
+ return appCall.call('changeStatusBarColor', JSON.stringify(params));
568
+ },
569
+ // 增长官返回页面
570
+ navigationGrowOfficer: function () {
571
+ return appCall.call('navigationGrowOfficer');
572
+ },
573
+ // 跳转到商城
574
+ navigationMall: function () {
575
+ return appCall.call('navigationMall');
576
+ },
577
+ // 跳转到能量兑换商城(emotofine_wap, dronefine_wap)
578
+ navigationEnergyMall: function () {
579
+ return appCall.call('energy-mall');
580
+ },
581
+ // 跳转到优惠券
582
+ navigationCoupon: function (params) {
583
+ if (params === void 0) { params = {}; }
584
+ return appCall.call('navigationCoupon', JSON.stringify(params));
585
+ },
586
+ // 订单地址选择页面
587
+ navigationSelectAddress: function (callback) {
588
+ function _callback(data) {
589
+ if (data) {
590
+ data = JSON.parse(data) || '';
591
+ }
592
+ if (typeof callback === 'function') {
593
+ callback(data);
594
+ }
595
+ }
596
+ window.bridge.selectAddressRelease = _callback;
597
+ return appCall.call('navigationSelectAddress', window.bridge.selectAddressRelease);
598
+ },
599
+ // 直播活动页
600
+ liveSignResultCall: function (params) {
601
+ if (params === void 0) { params = {}; }
602
+ return appCall.call('liveSignResultCall', JSON.stringify(params));
603
+ },
604
+ // 物流跟踪页
605
+ navigationDelivery: function (params) {
606
+ if (params === void 0) { params = ''; }
607
+ return appCall.call('navigationDelivery', params);
608
+ },
609
+ // 文章详情桥
610
+ articleHtmlAction: function (action, callback) {
611
+ if (action === void 0) { action = {}; }
612
+ Object.assign((window.bridge = window.bridge || {}), {
613
+ articleHtmlActionCallback: function (res) {
614
+ if (typeof callback === 'function') {
615
+ callback(res);
616
+ }
617
+ }
618
+ });
619
+ extensions.alert(JSON.stringify(action));
620
+ return appCall.call('articleHtmlAction', JSON.stringify(action), window.bridge.articleHtmlActionCallback);
621
+ },
622
+ // 获取离线包版本号
623
+ getOfflinePackageVersion: function (action, callback) {
624
+ if (action === void 0) { action = {}; }
625
+ Object.assign((window.bridge = window.bridge || {}), {
626
+ getOfflinePackageVersionCallback: function (res) {
627
+ if (typeof callback === 'function') {
628
+ callback(res);
629
+ }
630
+ }
631
+ });
632
+ return appCall.call('getOfflinePackageVersion', JSON.stringify(action), window.bridge.getOfflinePackageVersionCallback);
633
+ },
634
+ // 获取无人机题目
635
+ getDroneEmList: function (parmas, callback) {
636
+ var clientParse = function (params, defaultValue) {
637
+ if (defaultValue === void 0) { defaultValue = '{}'; }
638
+ return typeof params === 'object'
639
+ ? params
640
+ : JSON.parse(params || defaultValue);
641
+ };
642
+ Object.assign(window.bridge || {}, {
643
+ getDroneEmListCallback: function (res) {
644
+ if (res === void 0) { res = {}; }
645
+ callback && callback(clientParse(res, '[]'));
646
+ }
647
+ });
648
+ return appCall.call('getDroneEmList', JSON.stringify(parmas), window.bridge.getDroneEmListCallback);
649
+ },
650
+ // 跳转android,打开新的webview(refitting特有)
651
+ toRefitWebView: function (params) {
652
+ return appCall.call('toRefitWebView', JSON.stringify(params));
653
+ },
654
+ // 实人认证跳转
655
+ navigateRealPersonCertification: function (action) {
656
+ var _a;
657
+ if (action === void 0) { action = {}; }
658
+ var version = config.projectName === '摩托范' ? '3.54.00' : '1.0.0';
659
+ var isVersion = (_a = extensions.isAppVersionGreatThan) === null || _a === void 0 ? void 0 : _a.call(extensions, version);
660
+ return isVersion
661
+ ? appCall.call('navigateRealPersonCertification', JSON.stringify(action))
662
+ : appCall.call('navigateRealPersonCertification');
663
+ },
664
+ // 巡查官举报二手车成功
665
+ secondHandReporterComplete: function () {
666
+ return appCall.call('secondHandReporterComplete');
667
+ },
668
+ // 浏览记录记录数量
669
+ viewHistoryCount: function (day) {
670
+ return appCall.call('viewHistoryCount', day, window.bridge.viewHistoryCountRelease || function () { });
671
+ },
672
+ // 搜索记录数量
673
+ searchHistoryCount: function () {
674
+ return appCall.call('searchHistoryCount', window.bridge.searchHistoryCountRelease || function () { });
675
+ },
676
+ // 摩宁定位导航
677
+ mnPositionNavigation: function (params) {
678
+ if (params === void 0) { params = {}; }
679
+ return appCall.call('mnPositionNavigation', JSON.stringify(params));
680
+ },
681
+ // 摩宁选址
682
+ mnSiteSelection: function (params) {
683
+ if (params === void 0) { params = {}; }
684
+ return appCall.call('mnSiteSelection', JSON.stringify(params), window.bridge.mnSiteSelection || function () { });
685
+ },
686
+ // 跳转小程序
687
+ jumpApplet: function (url) {
688
+ if (url === void 0) { url = ''; }
689
+ return appCall.call('jumpApplet', url);
690
+ },
691
+ // 摩宁地图展示定位
692
+ mnPositionSelection: function (params) {
693
+ if (params === void 0) { params = {}; }
694
+ return appCall.call('mnPositionSelection', JSON.stringify(params), window.bridge.mnPositionSelection || function () { });
695
+ },
696
+ // 点评官调到摩友圈桥
697
+ commentOfficerTab: function (params) {
698
+ if (params === void 0) { params = ''; }
699
+ return appCall.call('commentOfficerTab', params);
700
+ },
701
+ // 跳转到骑行路线发布
702
+ jumpCyclingRoute: function (params) {
703
+ if (params === void 0) { params = ''; }
704
+ return appCall.call('jumpCyclingRoute', params);
705
+ },
706
+ // 跳转到打卡点发布
707
+ jumpPunchPoint: function (params) {
708
+ if (params === void 0) { params = ''; }
709
+ return appCall.call('jumpPunchPoint', params);
710
+ },
711
+ // 开启监听返回的桥
712
+ interactivePopEnable: function (params) {
713
+ if (params === void 0) { params = 2; }
714
+ return appCall.call('interactivePopEnable', params, window.bridge.interactivePopEnableRelease || function () { });
715
+ },
716
+ // ios开启监听返回的桥
717
+ interactiveSideslip: function (params) {
718
+ if (params === void 0) { params = 2; }
719
+ return appCall.call('interactiveSideslip', params);
720
+ },
721
+ // 取持久化存储
722
+ getStoreKey: function (params, callback) {
723
+ Object.assign((window.bridge = window.bridge || {}), {
724
+ getStoreKeyCallback: function (res) {
725
+ if (typeof callback === 'function') {
726
+ callback(res);
727
+ }
728
+ }
729
+ });
730
+ appCall.call('getStoreKey', params, window.bridge.getStoreKeyCallback);
731
+ },
732
+ // 持久化存储
733
+ setStoreKeyValue: function (params, callback) {
734
+ Object.assign((window.bridge = window.bridge || {}), {
735
+ setStoreKeyValueCallback: function (res) {
736
+ if (typeof callback === 'function') {
737
+ callback(res);
738
+ }
739
+ }
740
+ });
741
+ appCall.call('setStoreKeyValue', JSON.stringify(params), window.bridge.setStoreKeyValueCallback);
742
+ },
743
+ // 选择图片信息
744
+ selectImageToUpload: function (callback) {
745
+ Object.assign((window.bridge = window.bridge || {}), {
746
+ selectImageToUploadCallback: function (res) {
747
+ if (typeof callback === 'function') {
748
+ callback(res);
749
+ }
750
+ }
751
+ });
752
+ appCall.call('selectImageToUpload', window.bridge.selectImageToUploadCallback);
753
+ },
754
+ // 图片上传完返回信息
755
+ uploadImageFinish: function (params) {
756
+ appCall.call('uploadImageFinish', JSON.stringify(params));
757
+ },
758
+ // ========== 信息接口 ==========
759
+ // bridge请求
760
+ request: function (params) {
761
+ var _a;
762
+ if (!params.url)
763
+ throw new Error('url不能为空');
764
+ params.method = params.method || 'get';
765
+ params.hash = params.hash || Date.now();
766
+ var requestCallback = "".concat(params.hash, "RequestCallback");
767
+ Object.assign((window.bridge = window.bridge || {}), (_a = {},
768
+ _a[requestCallback] = function (res) {
769
+ var _a;
770
+ console.log(requestCallback, res);
771
+ if (typeof res === 'string') {
772
+ try {
773
+ // 使用 replaceJsonValue 处理特殊字符
774
+ var processedRes = ((_a = extensions.replaceJsonValue) === null || _a === void 0 ? void 0 : _a.call(extensions, res)) || res;
775
+ res = JSON.parse(processedRes) || {};
776
+ if (!res.code && res.code !== 0) {
777
+ extensions.alert(res.msg || 'bridge请求失败');
778
+ }
779
+ }
780
+ catch (error) {
781
+ console.log(error.message);
782
+ extensions.alert(error.message || 'bridge请求异常');
783
+ }
784
+ }
785
+ if (typeof params.callback === 'function') {
786
+ params.callback(res);
787
+ }
788
+ },
789
+ _a));
790
+ return appCall.call('request', JSON.stringify(__assign({}, params)), window.bridge[requestCallback]);
791
+ },
792
+ // 替换JSON值中的特殊字符
793
+ replaceJsonValue: function (str) {
794
+ var meta = {
795
+ '\b': '\\b',
796
+ '\t': '\\t',
797
+ '\n': '\\n',
798
+ '\f': '\\f',
799
+ '\r': '\\r'
800
+ };
801
+ return String(str).replace(/[\b\t\n\f\r]/g, function (s) {
802
+ return meta[s];
803
+ });
804
+ },
805
+ // 获取用户信息
806
+ getUserData: function (callback) {
807
+ window.bridge = window.bridge || {};
808
+ window.bridge.getUserDataCallback = function getUserDataCallback(data) {
809
+ var _a, _b;
810
+ if (showTip && window.Toast) {
811
+ window.Toast({
812
+ position: 'bottom',
813
+ message: 'setUserinfo:' + JSON.stringify(data)
814
+ });
815
+ }
816
+ var token = ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.token) || '';
817
+ if (config.setUserinfo) {
818
+ config.setUserinfo(data);
819
+ }
820
+ var newToken = ((_b = window.localStorage) === null || _b === void 0 ? void 0 : _b.token) || '';
821
+ if (newToken && token !== newToken) {
822
+ return window.location.reload();
823
+ }
824
+ if (typeof callback === 'function') {
825
+ callback(data);
826
+ }
827
+ };
828
+ return appCall.call('getUserData', window.bridge.getUserDataCallback);
829
+ },
830
+ // 鸿蒙系统获取用户数据
831
+ getUserDataDriving: function (callback) {
832
+ if (window.isHarmonyos) {
833
+ window.bridge = window.bridge || {};
834
+ window.bridge.getUserDataCallback = function getUserDataCallback(data) {
835
+ if (config.setUserinfo) {
836
+ config.setUserinfo(data);
837
+ }
838
+ if (typeof callback === 'function') {
839
+ callback(data);
840
+ }
841
+ };
842
+ return appCall.call('getUserDataDriving', window.bridge.getUserDataCallback);
843
+ }
844
+ },
845
+ // 获取app信息
846
+ getDeviceData: function (callback) {
847
+ var _callback = function (data) {
848
+ var _a;
849
+ // 直接使用已初始化的全局变量
850
+ if (data) {
851
+ if (window.isIOS) {
852
+ data = data.replace(/\n/g, '').replace(/\s*/g, '');
853
+ }
854
+ try {
855
+ data = JSON.parse(data || '{}');
856
+ var info = window.localStorage && window.localStorage.deviceData;
857
+ var deviceDataInfo = JSON.parse(info !== 'undefined' ? info || '{}' : '{}');
858
+ if (config.env) {
859
+ var env = config.env;
860
+ if (data.bundleId === env.emotofineBundleId) {
861
+ ;
862
+ window.isEmotofine = true;
863
+ }
864
+ if (data.bundleId === env.dronefineBundleId) {
865
+ ;
866
+ window.isdronefine = true;
867
+ }
868
+ }
869
+ data.deviceId = (data === null || data === void 0 ? void 0 : data.deviceId) || (deviceDataInfo === null || deviceDataInfo === void 0 ? void 0 : deviceDataInfo.deviceId) || '';
870
+ (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.setItem('deviceData', JSON.stringify(data));
871
+ console.log('deviceData', data);
872
+ }
873
+ catch (e) {
874
+ console.error('parse deviceData error:', e);
875
+ }
876
+ }
877
+ if (typeof callback === 'function') {
878
+ callback(data);
879
+ }
880
+ };
881
+ return appCall.call('getDeviceData', _callback);
882
+ },
883
+ // 获取app定位信息
884
+ getLocation: function (params) {
885
+ if (params === void 0) { params = {}; }
886
+ var version = config.projectName === '摩托范' ? '3.2.1' : '1.0.0';
887
+ params.needPermission = params.needPermission !== undefined ? params.needPermission : 1;
888
+ setTimeout(function () {
889
+ var _a;
890
+ return ((_a = extensions.isAppVersionGreatThan) === null || _a === void 0 ? void 0 : _a.call(extensions, version))
891
+ ? appCall.call('getLocation', JSON.stringify(params), window.bridge.getLocationCallback || function () { })
892
+ : appCall.call('getLocation', window.bridge.getLocationCallback || function () { });
893
+ }, 300);
894
+ },
895
+ // 获取客户端平台(1=Android,2=iOS,3=WAP,31=鸿蒙)
896
+ getAppPlatform: function () {
897
+ if (!window.isClient) {
898
+ return 3;
899
+ }
900
+ if (appCall.platform) {
901
+ return appCall.platform;
902
+ }
903
+ // 直接使用已初始化的全局变量
904
+ ;
905
+ appCall.platform = window.isAndroid
906
+ ? 1
907
+ : window.isHarmonyos
908
+ ? 31
909
+ : 2;
910
+ return appCall.platform;
911
+ },
912
+ // 获取客户端包名
913
+ getAppPackage: function () {
914
+ if (!window.isClient) {
915
+ return;
916
+ }
917
+ if (appCall.package) {
918
+ return appCall.package;
919
+ }
920
+ var ua = navigator.userAgent;
921
+ if (ua.indexOf('package=') === -1) {
922
+ return;
923
+ }
924
+ ;
925
+ appCall.package = ua.replace(/.*package=([\w.|+|2%]+).*/g, '$1');
926
+ appCall.package = appCall.package === ua ? '未知' : appCall.package;
927
+ return appCall.package;
928
+ },
929
+ // 获取客户端版本号
930
+ getAppVersion: function () {
931
+ if (!window.isClient) {
932
+ return;
933
+ }
934
+ if (appCall.version) {
935
+ return appCall.version;
936
+ }
937
+ var ua = navigator.userAgent.toLowerCase();
938
+ appCall.version = ua.replace(/.*version=([\d.]+).*/g, '$1');
939
+ if (appCall.version.length > 13) {
940
+ ;
941
+ appCall.version = config.env.VERSION || '';
942
+ }
943
+ return appCall.version;
944
+ },
945
+ // 判断当前版本号是否大于等于传入版本号
946
+ isAppVersionGreatThan: function (version) {
947
+ var ua = navigator.userAgent.toLowerCase();
948
+ var appVersion = ua.replace(/.*version=([\d.]+).*/g, '$1');
949
+ if (appVersion.length > 9) {
950
+ return false;
951
+ }
952
+ var versionParts = version.split('.').map(Number);
953
+ var appVersionParts = appVersion.split('.').map(Number);
954
+ for (var i = 0; i < Math.max(versionParts.length, appVersionParts.length); i++) {
955
+ var appPart = appVersionParts[i] || 0;
956
+ var verPart = versionParts[i] || 0;
957
+ if (appPart > verPart)
958
+ return true;
959
+ if (appPart < verPart)
960
+ return false;
961
+ }
962
+ return true;
963
+ },
964
+ // 设置导航栏顶部颜色
965
+ setStatusBarColor: function (color) {
966
+ return appCall.call('setStatusBarColor', color || '#FFFFFF');
967
+ },
968
+ // 商城,调用客服
969
+ haloMallCustomer: function () {
970
+ return appCall.call('haloMallCustomer');
971
+ },
972
+ // 商城客服
973
+ launchEmallMiniProgramWithUrl: function (data) {
974
+ return appCall.call('launchEmallMiniProgramWithUrl', JSON.stringify(data));
975
+ },
976
+ // 商城客服 老版本
977
+ launchEmallMiniProgram: function () {
978
+ return appCall.call('launchEmallMiniProgram');
979
+ },
980
+ // 改横屏切换
981
+ changeOrientation: function (params) {
982
+ return appCall.call('changeOrientation', params);
983
+ },
984
+ // 检测是否切换后台、是否黑屏;切出、切入APP进行通知
985
+ watchInOut: function (type) {
986
+ return window.bridge.watchInOutCallback
987
+ ? appCall.call('watchInOut', type, window.bridge.watchInOutCallback)
988
+ : appCall.call('watchInOut', type);
989
+ },
990
+ // 是否有网络(0否 1是)
991
+ hasNetwork: function () {
992
+ return new Promise(function (resolve, reject) {
993
+ Object.assign((window.bridge = window.bridge || {}), {
994
+ hasNetworkCallback: function (res) {
995
+ resolve(res);
996
+ }
997
+ });
998
+ appCall.call('hasNetwork', window.bridge.hasNetworkCallback);
999
+ });
1000
+ },
1001
+ // 埋点
1002
+ sendEventMsg: function (_a) {
1003
+ var eId = _a.eId, eventContent = _a.eventContent;
1004
+ return new Promise(function (resolve, reject) {
1005
+ Object.assign((window.bridge = window.bridge || {}), {
1006
+ sendEventMsgCallback: function (res) {
1007
+ resolve(res);
1008
+ }
1009
+ });
1010
+ appCall.call('sendEventMsg', JSON.stringify({
1011
+ eId: eId,
1012
+ eventContent: eventContent
1013
+ }), window.bridge.sendEventMsgCallback);
1014
+ });
1015
+ },
1016
+ // 是否存在新题库
1017
+ hasNewQuestions: function (callback) {
1018
+ Object.assign((window.bridge = window.bridge || {}), {
1019
+ hasNewQuestionsCallback: function (res) {
1020
+ if (typeof callback === 'function') {
1021
+ callback(res);
1022
+ }
1023
+ }
1024
+ });
1025
+ return appCall.call('hasNewQuestions', window.bridge.hasNewQuestionsCallback);
1026
+ },
1027
+ // 更新题库
1028
+ updateQuestions: function (params, callback) {
1029
+ Object.assign((window.bridge = window.bridge || {}), {
1030
+ updateQuestionsCallback: function (res) {
1031
+ if (typeof callback === 'function') {
1032
+ callback(res);
1033
+ }
1034
+ }
1035
+ });
1036
+ return appCall.call('updateQuestions', JSON.stringify(params), window.bridge.updateQuestionsCallback);
1037
+ },
1038
+ // 跳转个人主页
1039
+ goPersonPage: function (params) {
1040
+ return appCall.call('goPersonPage', JSON.stringify(params));
1041
+ },
1042
+ // 评论详情
1043
+ goCommentDetail: function (params) {
1044
+ return appCall.call('goCommentDetail', JSON.stringify(params));
1045
+ },
1046
+ // 举报评论
1047
+ reportComment: function (params) {
1048
+ return appCall.call('reportComment', JSON.stringify(params));
1049
+ },
1050
+ // 获取驾考题库图片
1051
+ getDrivingTestImage: function (params, callback) {
1052
+ var _a;
1053
+ if (params === void 0) { params = { item: { _id: '' } }; }
1054
+ var requestCallback = "getDrivingTestImage".concat(params.item._id, "Callback");
1055
+ Object.assign((window.bridge = window.bridge || {}), (_a = {},
1056
+ _a[requestCallback] = function (res) {
1057
+ var base64Img = res.includes('base64') ? res : "data:image/jpg;base64,".concat(res);
1058
+ params.item.pic = base64Img;
1059
+ if (typeof callback === 'function') {
1060
+ callback(base64Img);
1061
+ }
1062
+ },
1063
+ _a));
1064
+ params.item = params.item || { _id: '' };
1065
+ return appCall.call('getDrivingTestImage', params.item._id, window.bridge[requestCallback]);
1066
+ },
1067
+ // 驾校报名-我的反馈
1068
+ drivetestFeedbackAction: function (params) {
1069
+ return appCall.call('drivetest_feedback_action', JSON.stringify(params));
1070
+ },
1071
+ // 驾校报名-联系客服
1072
+ drivetestContactService: function (params) {
1073
+ return appCall.call('drivetest_contact_service', JSON.stringify(params));
1074
+ },
1075
+ // 驾校报名-证照信息
1076
+ drivetestDealerCredentials: function (params) {
1077
+ return appCall.call('drivetest_dealer_credentials', JSON.stringify(params));
1078
+ },
1079
+ // 驾校报名-驾校微信打电话线索
1080
+ drivetestWechatAndCall: function (params) {
1081
+ return appCall.call('drivetest_wechat_and_call', JSON.stringify(params));
1082
+ },
1083
+ // 是否登录
1084
+ boolIsLogin: function (callback) {
1085
+ Object.assign((window.bridge = window.bridge || {}), {
1086
+ boolIsLoginCallback: function (res) {
1087
+ if (typeof callback === 'function') {
1088
+ callback(res);
1089
+ }
1090
+ }
1091
+ });
1092
+ return appCall.call('hasLogin', window.bridge.boolIsLoginCallback);
1093
+ },
1094
+ // 未登录跳转登录页
1095
+ loginSucessGoon: function (callback) {
1096
+ Object.assign((window.bridge = window.bridge || {}), {
1097
+ loginSucessGoonCallback: function (res) {
1098
+ if (typeof callback === 'function') {
1099
+ callback(res);
1100
+ }
1101
+ }
1102
+ });
1103
+ return appCall.call('loginSucessGoon', window.bridge.loginSucessGoonCallback);
1104
+ },
1105
+ // 驾校报名-获取用户缓存信息
1106
+ drivetestGetQueryInfo: function (callback) {
1107
+ Object.assign((window.bridge = window.bridge || {}), {
1108
+ getQueryInfoCallback: function (res) {
1109
+ if (typeof callback === 'function') {
1110
+ callback(res);
1111
+ }
1112
+ }
1113
+ });
1114
+ return appCall.call('getQueryInfo', window.bridge.getQueryInfoCallback);
1115
+ },
1116
+ // 一键绑定手机
1117
+ drivertestOneKeyBlindMobile: function (callback) {
1118
+ Object.assign((window.bridge = window.bridge || {}), {
1119
+ drivertestOneKeyBlindMobileCallback: function (res) {
1120
+ if (typeof callback === 'function') {
1121
+ callback(res);
1122
+ }
1123
+ }
1124
+ });
1125
+ return appCall.call('drivertest_OneKeyBlindMobile', window.bridge.drivertestOneKeyBlindMobileCallback);
1126
+ },
1127
+ // 价格协议默认
1128
+ priceProtocolDefault: function (callback) {
1129
+ Object.assign((window.bridge = window.bridge || {}), {
1130
+ priceProtocolDefaultCallback: function (res) {
1131
+ if (typeof callback === 'function') {
1132
+ callback(res);
1133
+ }
1134
+ }
1135
+ });
1136
+ return appCall.call('price_protocol_default', window.bridge.priceProtocolDefaultCallback);
1137
+ },
1138
+ // 获取车库位置
1139
+ getGarageLocation: function (callback) {
1140
+ Object.assign((window.bridge = window.bridge || {}), {
1141
+ getGarageLocationCallback: function (res) {
1142
+ if (typeof callback === 'function') {
1143
+ callback(res);
1144
+ }
1145
+ }
1146
+ });
1147
+ return appCall.call('getGarageLocation', window.bridge.getGarageLocationCallback);
1148
+ },
1149
+ // 驾校报名-获取广告和业务数据
1150
+ drivetestGetAdAndBuinessData: function (params, callback) {
1151
+ Object.assign((window.bridge = window.bridge || {}), {
1152
+ drivetestGetAdAndBuinessDataCallback: function (res) {
1153
+ if (typeof callback === 'function') {
1154
+ callback(res);
1155
+ }
1156
+ }
1157
+ });
1158
+ return appCall.call('drivetest_getAdAndBuinessData', JSON.stringify(params), window.bridge.drivetestGetAdAndBuinessDataCallback);
1159
+ },
1160
+ // 检查定位是否启用
1161
+ checkLocationEnable: function (callback) {
1162
+ Object.assign((window.bridge = window.bridge || {}), {
1163
+ checkLocationEnableCallback: function (res) {
1164
+ if (typeof callback === 'function') {
1165
+ callback(res);
1166
+ }
1167
+ }
1168
+ });
1169
+ return appCall.call('checkLocationEnable', window.bridge.checkLocationEnableCallback);
1170
+ },
1171
+ // 检查定位权限
1172
+ checkLocationPermission: function (callback) {
1173
+ Object.assign((window.bridge = window.bridge || {}), {
1174
+ checkLocationPermissionCallback: function (res) {
1175
+ if (typeof callback === 'function') {
1176
+ callback(res);
1177
+ }
1178
+ }
1179
+ });
1180
+ return appCall.call('checkLocationPermission', window.bridge.checkLocationPermissionCallback);
1181
+ },
1182
+ // 跳转到定位设置
1183
+ jumpToLocationSetting: function (callback) {
1184
+ Object.assign((window.bridge = window.bridge || {}), {
1185
+ jumpToLocationSettingCallback: function (res) {
1186
+ if (typeof callback === 'function') {
1187
+ callback(res);
1188
+ }
1189
+ }
1190
+ });
1191
+ return appCall.call('jumpToLocationSetting', window.bridge.jumpToLocationSettingCallback);
1192
+ },
1193
+ // 驾校报名-获取广告banner
1194
+ drivetestGetAdBanner: function (params, callback) {
1195
+ Object.assign((window.bridge = window.bridge || {}), {
1196
+ drivetest_getAdBannerCallback: function (res) {
1197
+ if (typeof callback === 'function') {
1198
+ callback(res);
1199
+ }
1200
+ }
1201
+ });
1202
+ return appCall.call('drivetest_getAdBanner', JSON.stringify(params), window.bridge.drivetest_getAdBannerCallback);
1203
+ },
1204
+ // 获取系统黑白模式
1205
+ getDayNightStyle: function (callback) {
1206
+ Object.assign((window.bridge = window.bridge || {}), {
1207
+ getDayNightStyleCallback: function (res) {
1208
+ if (typeof callback === 'function') {
1209
+ callback(res);
1210
+ }
1211
+ }
1212
+ });
1213
+ return appCall.call('getDayNightStyle', window.bridge.getDayNightStyleCallback);
1214
+ },
1215
+ // 答题返回回调
1216
+ onBackAction: function (callback) {
1217
+ Object.assign((window.bridge = window.bridge || {}), {
1218
+ onBackActionCallback: function (res) {
1219
+ if (typeof callback === 'function') {
1220
+ callback(res);
1221
+ }
1222
+ }
1223
+ });
1224
+ return appCall.call('onBackAction', window.bridge.onBackActionCallback);
1225
+ },
1226
+ // 获取状态栏高度
1227
+ getStatusBarHeight: function (params, callback) {
1228
+ Object.assign((window.bridge = window.bridge || {}), {
1229
+ onGetStatusBarHeightCallback: function (res) {
1230
+ if (typeof callback === 'function') {
1231
+ callback(res);
1232
+ }
1233
+ }
1234
+ });
1235
+ return appCall.call('getStatusBarHeight', params, window.bridge.onGetStatusBarHeightCallback);
1236
+ },
1237
+ // 加载本地网页
1238
+ loadLocalWeb: function (params) {
1239
+ if (params === void 0) { params = {}; }
1240
+ return appCall.call('loadLocalWeb', JSON.stringify(params));
1241
+ },
1242
+ // 获取考试VIP题目
1243
+ getExamVipQuestions: function (params) {
1244
+ return appCall.call('getExamVipQuestions', params, window.bridge.getExamVipQuestionsCallback || function () { });
1245
+ },
1246
+ // 保存优惠券
1247
+ saveEmCoupon: function (params) {
1248
+ if (params === void 0) { params = {}; }
1249
+ return appCall.call('saveEmCoupon', JSON.stringify(params));
1250
+ },
1251
+ // 获取优惠券
1252
+ getEmCoupon: function (params, callback) {
1253
+ Object.assign((window.bridge = window.bridge || {}), {
1254
+ getEmCouponCallback: function (res) {
1255
+ if (typeof callback === 'function') {
1256
+ callback(res);
1257
+ }
1258
+ }
1259
+ });
1260
+ return appCall.call('getEmCoupon', JSON.stringify(params), window.bridge.getEmCouponCallback);
1261
+ },
1262
+ // 快乐星期四中奖弹框
1263
+ getUserWinInfo: function (params) {
1264
+ return appCall.call('getUserWinInfo', params);
1265
+ },
1266
+ // ========== 账号操作接口 ==========
1267
+ // 登录
1268
+ login: function (params) {
1269
+ if (params === void 0) { params = {}; }
1270
+ var version = config.projectName === '摩托范' ? '3.2.1' : '1.0.0';
1271
+ if (!window.isClient) {
1272
+ return (window.location.href = '/login');
1273
+ }
1274
+ // 直接使用已初始化的全局变量
1275
+ if (window.isAndroid || window.isHarmonyos) {
1276
+ return extensions.isAppVersionGreatThan(version)
1277
+ ? appCall.call('login', JSON.stringify(params))
1278
+ : appCall.call('login');
1279
+ }
1280
+ setTimeout(function () {
1281
+ var _a;
1282
+ if (!((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.token)) {
1283
+ appCall.call('login', JSON.stringify(params), window.bridge.getUserDataCallback);
1284
+ }
1285
+ }, 300);
1286
+ },
1287
+ // 注册
1288
+ register: function (callback) {
1289
+ return appCall.call('register', window.bridge.getUserDataCallback);
1290
+ },
1291
+ // 注销账号
1292
+ closeAccount: function () {
1293
+ return appCall.call('closeAccount');
1294
+ }
1295
+ };
1296
+ return extensions;
1297
+ }