@conecli/cone-render 0.10.1-shop3.98 → 0.10.1-shop3.99

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.
@@ -1 +1 @@
1
- import Taro from '@tarojs/taro';
2
1
  isH5AndJdShopView,
3
2
  isJdApp,
4
3
  isIosDevice,
5
4
  isAndroidDevice,
6
5
  isJdAndIosDevice,
7
6
  isJdAndAndroidDevice,
8
7
  jdAppVersionCompare,
9
8
  isAppStowShop,
10
9
  isJdAndHarmonyDevice,
11
10
  isInJdShopView,
12
11
  (window.JDJshopViewInfo = {
13
12
  androidTouchSlop: 5,
14
13
  getAndroidTouchSlopState: false,
15
14
  });
16
15
  (state) => {
17
16
  console.log('document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
18
17
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state ? 0 : 1);
19
18
  },
20
19
  1500,
21
20
  { leading: false, trailing: true },
22
21
  (state) => {
23
22
  console.log('IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
24
23
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state);
25
24
  },
26
25
  1500,
27
26
  { leading: true, trailing: false },
28
27
  if (!isJdApp) {
29
28
  if (isH5) {
30
29
 
31
30
  const documentHandleVisibilityChange = () => {
32
31
  const state = document.hidden;
33
32
  window.startDocumentVisibilityChange && documentThrottledTrigger(state);
34
33
  };
35
34
  document.removeEventListener('visibilitychange', documentHandleVisibilityChange);
36
35
  console.log('每次进入页面先清除浏览器visibilitychange监听事件');
37
36
  setTimeout(() => {
38
37
  document.addEventListener('visibilitychange', documentHandleVisibilityChange, false);
39
38
  window.startDocumentVisibilityChange = true;
40
39
  }, 3000);
41
40
  }
42
41
  } else {
43
42
 
44
43
  !window.webviewVisible &&
45
44
  (window.webviewVisible = (state) => {
46
45
  if (window.startDocumentVisibilityChange) {
47
46
  webviewThrottledTrigger(state);
48
47
  } else {
49
48
  Taro.eventCenter.trigger(
50
49
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE_INIT_NOW_TIME,
51
50
  state,
52
51
  );
53
52
  }
54
53
  state === 1 && taroEventSendPageScrollInfo();
55
54
  });
56
55
  setTimeout(() => {
57
56
  window.startDocumentVisibilityChange = true;
58
57
  }, 3000);
59
58
  !window.floatReceiveData && (window.floatReceiveData = () => {});
60
59
  }
61
60
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
62
61
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
63
62
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
64
63
  displayHeight: 1920,
65
64
  offSetY: 0,
66
65
  };
67
66
  if (options) {
68
67
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options;
69
68
  }
70
69
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {};
71
70
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes);
72
71
  console.log('PageScrollEnd fire');
73
72
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options);
74
73
  const { businessType } = options;
75
74
  switch (businessType) {
76
75
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
77
76
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options);
78
77
  break;
79
78
  case H5_MSG_TO_H5_BUSINESSTYPE.h5BaseDataChange:
80
79
  Taro.eventCenter.trigger(TaroEventType.H5_BASE_DATA_CHANGE_REGISTER, options);
81
80
  break;
82
81
  default:
83
82
  break;
84
83
  }
85
84
  const { shopHomeExtendInfo } = options;
86
85
  if (shopHomeExtendInfo) {
87
86
  Taro.eventCenter.trigger(TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA, shopHomeExtendInfo);
88
87
  }
89
88
  window && window.scrollTo(0, 0);
90
89
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options);
91
90
  const { action, params } = options;
92
91
  console.log('taroEventShopStowSend', options);
93
92
  if (action) {
94
93
  Taro.eventCenter.trigger(action, params);
95
94
  }
96
95
  NATIVE_PAGE_READ: 'pageReady',
97
96
  NATIVE_PAGE_FINISH: 'pageFinish',
98
97
  NATIVE_INFO_DATA: 'nativeInfoData',
99
98
  NATIVE_PAGE_SCROLL: 'pageScroll',
100
99
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
101
100
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
102
101
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
103
102
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
104
103
  NATIVE_MOBILE_CONFIG: 'getMobileConfig',
105
104
  NATIVE_SHOW_TOAST: 'showToast',
106
105
  NATIVE_SHOW_DIALOG: 'showDialog',
107
106
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
108
107
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
109
108
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
110
109
  NATIVE_ADD_CART: 'addCart',
111
110
  NATIVE_JUMP_TAB_BAR: 'jumpTabBar',
112
111
  NATIVE_OPEN_FLOAT: 'openFloat',
113
112
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
114
113
  NAVTIVE_FLOAT_READY: 'floatReady',
115
114
  NATIVE_REFRESH_PAGE: 'refreshPage',
116
115
  PAGE_PV_PARAM: 'pagePvParam',
117
116
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
118
117
  NATIVE_POP_WEBVIEW: 'popWebview',
119
118
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
120
119
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
121
120
  UPDATE_NATIVE_DATA: 'updateNativeData',
122
121
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
123
122
  LUXURY_INFORM_CHANGE_HEIGHT: 'sendImmersionStatus',
124
123
  NATIVE_SHOPSTOW_SEND: 'sendMsgToShopStow',
125
124
  NATIVE_UPDATE_PAGE_INFO: 'pageCountInfo',
126
125
  NATIVE_TO_BUYER_SHOW_DETAIL: 'jumpBuyerShowDetail',
127
126
  NATIVE_TO_HIDE_JD_SHOP_HEADER: 'hideNativeHeader',
128
127
  NATIVE_TO_SHOW_CART_BTN: 'showCartButton',
129
128
  NATIVE_IMMERSIVEHEADER_STATE_CHANGE: 'immersiveHeaderStateChange',
130
129
  SHOP_FOLLOW_STATE_REGISTER: 'shopFollowStateRegister',
131
130
  SHOP_FOLLOW_STATE_SYNC: 'shopFollowStateSync',
132
131
  NATIVE_GET_SHOP_FOLLOW_STATE: 'getShopFollowState',
133
132
  H5_TO_NATIVE_LIVE_RESERVE_STATE: 'shopLiveReserveStateSync',
134
133
  H5_TO_NATIVE_SCROLL_TO_TOP: 'expertShopScrollToTop',
135
134
  GET_COLOR_API_DATA: 'getColorApiData',
136
135
  GET_ENTER_SHOP_OPEN_APP: 'getEnterShopOpenApp',
137
136
  NEED_REFRESH_PRODUCT: 'needRefreshProduct',
138
137
  DO_FOLLOW: 'doFollow',
139
138
  FOLLOW_STATE_CHANGED: 'followStateChanged',
140
139
  SHOW_BACK_TOTOP: 'showBackToTop',
141
140
  GET_SELECTEDPARAM: 'getRequestSelectedParam',
142
141
  SET_SELECTEDPARAM: 'setRequestSelectedParam',
143
142
  UPDATE_BARFILTER: 'updateBarFilterInfos',
144
143
  OPENAPP_CHANGED: 'openappChanged',
145
144
  OPEN: 'open',
146
145
  CLOSE: 'close',
147
146
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
148
147
  h5BaseDataChange: 'h5BaseDataChange',
149
148
  type = Message_Type.NATIVE_PAGE_READ,
150
149
  sendData: null | object = null,
151
150
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
152
151
  console.log(
153
152
  '初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView',
154
153
  isAppStowShop,
155
154
  type,
156
155
  sendData,
157
156
  isJdApp,
158
157
  isH5AndJdShopView,
159
158
  callBackName,
160
159
  );
161
160
  if (isJdApp) {
162
161
  const getCallBackName = `window.${callBackName}`;
163
162
  let getRouterParam = {
164
163
  type,
165
164
  callBackName: getCallBackName,
166
165
  };
167
166
  if (!isAppStowShop) {
168
167
  getRouterParam['newHomePage'] = true;
169
168
  }
170
169
  if (sendData) {
171
170
  getRouterParam = Object.assign({}, getRouterParam, sendData);
172
171
  }
173
172
  if (isIosDevice) {
174
173
  const routerURL = isAppStowShop
175
174
  ? 'router://JDBDecorationPlatformModule/wrtNative'
176
175
  : 'router://JDShopModule/wrtNative';
177
176
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
178
177
  callRouterIOS({
179
178
  routerURL,
180
179
  routerParam: getRouterParam,
181
180
  });
182
181
  } else {
183
182
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
184
183
  method: 'callRouterModuleWithParams',
185
184
  params: {
186
185
  routerURL,
187
186
  serialize: '1',
188
187
  routerParam: JSON.stringify(getRouterParam),
189
188
  callBackName: getCallBackName,
190
189
  callBackId: `${callBackName}Ios`,
191
190
  },
192
191
  });
193
192
  }
194
193
  } else if (isAndroidDevice) {
195
194
  if (type === Message_Type.NATIVE_MOBILE_CONFIG && jdAppVersionCompare('13.2.8') >= 0) {
196
195
  callRouterAndroid({
197
196
  routerURL: 'router://JDJShopModule/wrtNative',
198
197
  routerParam: getRouterParam,
199
198
  });
200
199
  } else {
201
200
  window?.JDJshop?.wrtNative(
202
201
  JSON.stringify({
203
202
  routerParam: JSON.stringify(getRouterParam),
204
203
  serialize: '1',
205
204
  callBackName: getCallBackName,
206
205
  callBackId: `${callBackName}Android`,
207
206
  }),
208
207
  );
209
208
  }
210
209
  } else if (isJdAndHarmonyDevice) {
211
210
  const plugin = 'JdShopPlugin';
212
211
  const action = type;
213
212
  const params = {
214
213
  routerURL: '',
215
214
  routerParam: getRouterParam,
216
215
  };
217
216
  window.XWebView &&
218
217
  window.XWebView.callNative(
219
218
  plugin,
220
219
  action,
221
220
  JSON.stringify(params),
222
221
  getCallBackName,
223
222
  `${callBackName}HarmonyOS`,
224
223
  );
225
224
  }
226
225
  return true;
227
226
  }
228
227
  return false;
229
228
  if (isJdApp) {
230
229
  if (isIosDevice) {
231
230
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
232
231
  method: 'close',
233
232
  });
234
233
  } else if (isAndroidDevice) {
235
234
  window?.XView && window?.XView.close();
236
235
  } else if (isJdAndHarmonyDevice) {
237
236
  !isInLiveroomChannel && nativeClosePopWebView();
238
237
  if (isInLiveroomChannel && window?.JDLiveAppJS) {
239
238
  window?.JDLiveAppJS?.handleJs(
240
239
  JSON.stringify([
241
240
  {
242
241
  action: 'closeWeb',
243
242
  params: {},
244
243
  },
245
244
  ]),
246
245
  );
247
246
  } else {
248
247
  window?.XWebView?.callNative &&
249
248
  window.XWebView.callNative(
250
249
  'JDXViewPlugin',
251
250
  'closeLayer2',
252
251
  JSON.stringify({}),
253
252
  'shopxCloseXview',
254
253
  '1',
255
254
  );
256
255
  }
257
256
  }
258
257
  }
259
258
  console.log('showToastByRouter:', title, showType);
260
259
  if (isJdApp) {
261
260
  const routerParam = {
262
261
  message: title,
263
262
  iconType: showType,
264
263
  duration,
265
264
  };
266
265
  if (isIosDevice) {
267
266
  callRouterIOS({
268
267
  routerURL: 'router://JDShopModule/showToast',
269
268
  routerParam,
270
269
  });
271
270
  } else if (isAndroidDevice) {
272
271
  callRouterAndroid({
273
272
  routerURL: 'router://JDJShopModule/showToast',
274
273
  routerParam,
275
274
  });
276
275
  } else if (isJdAndHarmonyDevice) {
277
276
  const getHarmonyVersion = window?.shopGlobalSwitch?.useNativeHarmonyToastVersion;
278
277
  if (
279
278
  getHarmonyVersion &&
280
279
  jdAppVersionCompare(getHarmonyVersion) >= 0 &&
281
280
  !isInJdShopView &&
282
281
  window?.jmfe?.callRouter
283
282
  ) {
284
283
  const params = {
285
284
  routerURL: 'router://JDJShopxModule/showToast',
286
285
  routerParam: routerParam,
287
286
  sync: '',
288
287
  };
289
288
  window.jmfe.callRouter(params).then((res) => {
290
289
  console.log('鸿蒙调用toast成功', res);
291
290
  });
292
291
  } else {
293
292
  const plugin = 'JdShopPlugin';
294
293
  const action = 'showToast';
295
294
  const params = {
296
295
  routerURL: 'router://JDJShopModule/showToast',
297
296
  routerParam: routerParam,
298
297
  };
299
298
  window.XWebView && window.XWebView.callNative(plugin, action, JSON.stringify(params));
300
299
  }
301
300
  }
302
301
  }
303
302
  console.log('nativePageLoadReady called');
304
303
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
305
304
  Message_Type.NATIVE_INFO_DATA
306
305
  ] = async (data: any) => {
307
306
  console.log('nativePageLoadReady callBack:', callBack, ', data:', data);
308
307
  callBack && callBack(data);
309
308
  };
310
309
  nativePageGetMessageInitCallBack();
311
310
  nativePageRegisterMessage(
312
311
  Message_Type.NATIVE_PAGE_READ,
313
312
  sendData,
314
313
  Message_CallBack_Name.MESSAGE_HOME_INIT,
315
314
  );
316
315
  return nativePageRegisterMessage(
317
316
  Message_Type.NATIVE_PAGE_FINISH,
318
317
  null,
319
318
  Message_CallBack_Name.MESSAGE_HOME_INIT,
320
319
  );
321
320
  callBack &&
322
321
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
323
322
  Message_Type.NATIVE_GET_SCROLL_TOP
324
323
  ] = callBack);
325
324
  return nativePageRegisterMessage(
326
325
  Message_Type.NATIVE_GET_SCROLL_TOP,
327
326
  null,
328
327
  Message_CallBack_Name.MESSAGE_HOME_INIT,
329
328
  );
330
329
  callBack &&
331
330
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
332
331
  Message_Type.NATIVE_TO_SCROLL_TOP
333
332
  ] = callBack);
334
333
  nativePageRegisterMessage(
335
334
  Message_Type.NATIVE_TO_SCROLL_TOP,
336
335
  {
337
336
  data: {
338
337
  scrollTop,
339
338
  },
340
339
  },
341
340
  Message_CallBack_Name.MESSAGE_HOME_INIT,
342
341
  );
343
342
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data);
344
343
  Taro.eventCenter.trigger(TaroEventType.SHOP_FOLLOW_STATE_REGISTER, data);
345
344
  Taro.eventCenter.trigger(TaroEventType.IMMERSIVEHEADER_STATE_CHANGE, data);
346
345
  configName: string,
347
346
  isBeforePageReady: boolean,
348
347
  return new Promise((resolve, reject) => {
349
348
  if (!isJdApp) {
350
349
  reject({
351
350
  code: -1,
352
351
  message: 'getMPaasConfigByNative 只在松果APP店铺内部调用有效。',
353
352
  });
354
353
  return;
355
354
  }
356
355
  if (
357
356
  isIosDevice &&
358
357
  isBeforePageReady &&
359
358
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
360
359
  ) {
361
360
  reject({
362
361
  code: -2,
363
362
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
364
363
  });
365
364
  return;
366
365
  }
367
366
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
368
367
  Message_Type.NATIVE_MOBILE_CONFIG
369
368
  ] = (data: any) => {
370
369
  const configData = isAndroidDevice ? data : data?.data;
371
370
  const res = JSONParse(configData);
372
371
  resolve(res);
373
372
  };
374
373
  nativePageGetMessageInitCallBack();
375
374
  nativePageRegisterMessage(
376
375
  Message_Type.NATIVE_MOBILE_CONFIG,
377
376
  {
378
377
  data: {
379
378
  space: isIosDevice ? 'JDCDSHOP' : 'JDShop',
380
379
  configName,
381
380
  },
382
381
  },
383
382
  Message_CallBack_Name.MESSAGE_HOME_INIT,
384
383
  );
385
384
  });
386
385
  bussinessKey: string,
387
386
  isBeforePageReady: boolean,
388
387
  if (!bussinessKey) {
389
388
  return null;
390
389
  }
391
390
  if (!isJdApp) {
392
391
  return null;
393
392
  }
394
393
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`;
395
394
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`;
396
395
  let configData = window[CACHED_MPAAS_KEY];
397
396
  if (configData == null) {
398
397
  configData = await getMPaasConfigByNative(CONFIG_NAME, isBeforePageReady).catch((e) => {
399
398
  console.log('getMPaasConfigByNative error:', e);
400
399
  return null;
401
400
  });
402
401
  window[CACHED_MPAAS_KEY_HELPER] = {};
403
402
  window[CACHED_MPAAS_KEY] = configData;
404
403
  }
405
404
  if (configData) {
406
405
  const originData = configData[bussinessKey];
407
406
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey];
408
407
  try {
409
408
  if (hasParse || ['object', 'boolean', 'number'].includes(typeof originData)) {
410
409
  return originData;
411
410
  } else {
412
411
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true;
413
412
  const parseData = JSON.parse(configData[bussinessKey]);
414
413
  configData[bussinessKey] = parseData;
415
414
  return parseData;
416
415
  }
417
416
  } catch (e) {
418
417
  return originData;
419
418
  }
420
419
  }
421
420
  return null;
422
421
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE);
423
422
  if (isJdAndAndroidDevice) {
424
423
  callBack &&
425
424
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
426
425
  Message_Type.NATIVE_HOME_PAGING_ENABLE
427
426
  ] = callBack);
428
427
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
429
428
  data: {
430
429
  enable: enable,
431
430
  },
432
431
  });
433
432
  }
434
433
  if (isJdAndAndroidDevice) {
435
434
  callBack &&
436
435
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
437
436
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
438
437
  ] = callBack);
439
438
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP);
440
439
  }
441
440
  SUCCESS: 'success',
442
441
  FAIL: 'fail',
443
442
  NORMAL: 'normal',
444
443
  SUCCESS: 2,
445
444
  FAIL: 3,
446
445
  NORMAL: 1,
447
446
  SUCCESS: 2,
448
447
  FAIL: 3,
449
448
  NORMAL: 1,
450
449
  [ToastIosType.NORMAL]: ToastType.NORMAL,
451
450
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
452
451
  [ToastIosType.FAIL]: ToastType.FAIL,
453
452
  if (isShowNewRouterToast) {
454
453
  const changeShowType = isJdAndIosDevice
455
454
  ? toastIosTypeToNewToastType[showType] || showType
456
455
  : showType;
457
456
  showToastByRouter(title, changeShowType, duration * 1000);
458
457
  } else {
459
458
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
460
459
  data: {
461
460
  message: title,
462
461
  iconType: showType,
463
462
  duration,
464
463
  },
465
464
  });
466
465
  }
467
466
  routerURL,
468
467
  routerParam,
469
468
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
470
469
  isSync = false,
471
470
  const getCallBackName = `window.${callBackName}`;
472
471
  const params = {
473
472
  routerURL,
474
473
  serialize: '1',
475
474
  routerParam,
476
475
  callBackName: getCallBackName,
477
476
  callBackId: `${callBackName}Ios`,
478
477
  };
479
478
  console.log(
480
479
  'callRouterIOS routerURL:',
481
480
  routerURL,
482
481
  ',routerParam:',
483
482
  routerParam,
484
483
  'params',
485
484
  params,
486
485
  'isSync',
487
486
  isSync,
488
487
  );
489
488
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
490
489
  method: isSync ? 'callSyncRouterModuleWithParams' : 'callRouterModuleWithParams',
491
490
  params: JSON.stringify(params),
492
491
  });
493
492
  routerURL,
494
493
  routerParam,
495
494
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
496
495
  isSync = false,
497
496
  hasJdRouter = true,
498
497
  console.log(
499
498
  'callRouterAndroid routerURL:',
500
499
  routerURL,
501
500
  ',routerParam:',
502
501
  routerParam,
503
502
  'isSync',
504
503
  isSync,
505
504
  );
506
505
  const getCallBackName = `window.${callBackName}`;
507
506
  routerParam?.data &&
508
507
  typeof routerParam?.data === 'object' &&
509
508
  (routerParam.data = JSON.stringify(routerParam?.data));
510
509
  var params = {
511
510
  serialize: '1',
512
511
  routerURL,
513
512
  routerParam,
514
513
  callBackName: getCallBackName,
515
514
  callBackId: `${callBackName}Android`,
516
515
  };
517
516
  hasJdRouter && (params['jdRouter'] = '1');
518
517
  isSync
519
518
  ? window?.JDAppUnite?.callSyncRouterModuleWithParams(JSON.stringify(params))
520
519
  : window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params));
521
520
  pluginName,
522
521
  action,
523
522
  routerParam,
524
523
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
525
524
  isSync = false,
526
525
  const getCallBackName = `window.${callBackName}`;
527
526
  const params = {
528
527
  routerURL: '',
529
528
  routerParam: routerParam,
530
529
  };
531
530
  const outBridgeType = ['getLastAddress', 'getAddress'];
532
531
  console.log(
533
532
  'callRouterHarmony pluginName:',
534
533
  pluginName,
535
534
  'action',
536
535
  action,
537
536
  ',routerParam:',
538
537
  routerParam,
539
538
  'params',
540
539
  params,
541
540
  'isSync',
542
541
  isSync,
543
542
  );
544
543
  window?.XWebView?.callNative(
545
544
  pluginName,
546
545
  action,
547
546
  outBridgeType.includes(action) ? JSON.stringify(routerParam) : JSON.stringify(params),
548
547
  getCallBackName,
549
548
  `${callBackName}HarmonyOS`,
550
549
  );
551
550
  callRouterHarmony,
552
551
  callBack &&
553
552
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
554
553
  Message_Type.NATIVE_SHOW_DIALOG
555
554
  ] = callBack);
556
555
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
557
556
  data: params,
558
557
  });
559
558
  if (!isJdApp) {
560
559
  return;
561
560
  }
562
561
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
563
562
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
564
563
  try {
565
564
  console.log('message2native 接收消息:', JSON.stringify(messageData));
566
565
  console.log('接收到原生通知返回的原始数据nativePageGetMessageInitCallBack', messageData);
567
566
  const getMessageJsonData = JSONParse(messageData);
568
567
  const { status } = getMessageJsonData;
569
568
  if (status == '0') {
570
569
  const { type, data } = getMessageJsonData?.data;
571
570
  const getSendJsonData = JSONParse(data);
572
571
  switch (type) {
573
572
  case Message_Type.NATIVE_INFO_DATA:
574
573
  case Message_Type.NATIVE_PAGE_FINISH:
575
574
  case Message_Type.NATIVE_GET_SCROLL_TOP:
576
575
  case Message_Type.NATIVE_TO_SCROLL_TOP:
577
576
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
578
577
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
579
578
  case Message_Type.NATIVE_MOBILE_CONFIG:
580
579
  case Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE:
581
580
  case Message_Type.GET_ENTER_SHOP_OPEN_APP:
582
581
  case Message_Type.FOLLOW_STATE_CHANGED:
583
582
  case Message_Type.NEED_REFRESH_PRODUCT:
584
583
  case Message_Type.GET_SELECTEDPARAM:
585
584
  case Message_Type.OPENAPP_CHANGED:
586
585
  case Message_Type.SET_SELECTEDPARAM:
587
586
  const getTypeCallBack =
588
587
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
589
588
  if (getTypeCallBack) {
590
589
  const isCallBackFunc = typeof getTypeCallBack === 'function';
591
590
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
592
591
  isCallBackFunc && getTypeCallBack(getSendJsonData);
593
592
  }
594
593
  break;
595
594
  case Message_Type.GET_COLOR_API_DATA:
596
595
  const combinType = `${type}_${getSendJsonData.functionId}`;
597
596
  const getcombinTypeCallBack =
598
597
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
599
598
  combinType
600
599
  ];
601
600
  if (getcombinTypeCallBack) {
602
601
  const isCallBackFunc = typeof getcombinTypeCallBack === 'function';
603
602
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
604
603
  if (
605
604
  (isAndroidDevice || isIosDevice) &&
606
605
  getSendJsonData.functionData &&
607
606
  typeof getSendJsonData.functionData === 'string'
608
607
  ) {
609
608
  getSendJsonData.functionData = JSONParse(getSendJsonData.functionData);
610
609
  }
611
610
  isCallBackFunc && getcombinTypeCallBack(getSendJsonData);
612
611
  }
613
612
  break;
614
613
  case Message_Type.NATIVE_SHOW_DIALOG:
615
614
  const showDialogCallBack =
616
615
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
617
616
  if (showDialogCallBack) {
618
617
  const isCallBackFunc = typeof showDialogCallBack === 'function';
619
618
  console.log(
620
619
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
621
620
  type,
622
621
  isCallBackFunc,
623
622
  getMessageJsonData,
624
623
  );
625
624
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data);
626
625
  }
627
626
  break;
628
627
  case Message_Type.NATIVE_PAGE_SCROLL:
629
628
  taroEventSendPageScrollInfo(data);
630
629
  break;
631
630
  case Message_Type.NATIVE_PAGE_SCROLL_END:
632
631
  taroEventSendPageScrollEndInfo(data);
633
632
  break;
634
633
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
635
634
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data);
636
635
  taroEventH5SendMsgToH5(getSendJsonData);
637
636
  break;
638
637
  case Message_Type.UPDATE_NATIVE_DATA:
639
638
  taroEventUpdateNativeData(getSendJsonData);
640
639
  break;
641
640
  case Message_Type.H5_TO_SCROLL_TOP:
642
641
  taroEventH5ToScrollTop();
643
642
  break;
644
643
  case Message_Type.NATIVE_SHOPSTOW_SEND:
645
644
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND', messageData);
646
645
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
647
646
  taroEventShopStowSend(getSendJsonData);
648
647
  break;
649
648
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
650
649
  taroEventSendImmersionStatus(data);
651
650
  break;
652
651
  case Message_Type.NATIVE_IMMERSIVEHEADER_STATE_CHANGE:
653
652
  taroEventSendImmersiveHeaderChange(data);
654
653
  break;
655
654
  case Message_Type.SHOP_FOLLOW_STATE_REGISTER:
656
655
  taroEventSendShopFollowStateChange(data);
657
656
  break;
658
657
  default:
659
658
  }
660
659
  } else {
661
660
  console.log('传递数据获取异常', getMessageJsonData);
662
661
  }
663
662
  } catch (e) {
664
663
  console.log('获取转换异常结果', e);
665
664
  }
666
665
  };
667
666
  }
668
667
  console.warn('🚀 ~~ JumpTabBarInCurrentShop() ~~ params:', params);
669
668
  nativePageRegisterMessage(Message_Type.NATIVE_JUMP_TAB_BAR, {
670
669
  data: params,
671
670
  });
672
671
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
673
672
  data: params,
674
673
  });
675
674
  const changeData = {
676
675
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
677
676
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
678
677
  };
679
678
  if (isChangeDefaultPopViewHeight && !params?.height) {
680
679
  changeData.height = Math.round(window.screen.height * 0.8);
681
680
  changeData.borderRadius = 12;
682
681
  }
683
682
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
684
683
  data: {
685
684
  ...changeData,
686
685
  ...params,
687
686
  },
688
687
  });
689
688
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
690
689
  data: {
691
690
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
692
691
  ...params,
693
692
  },
694
693
  });
695
694
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS);
696
695
  console.log('popWebview关闭');
697
696
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
698
697
  data: params,
699
698
  });
700
699
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
701
700
  data: params,
702
701
  });
703
702
  window &&
704
703
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`);
705
704
  const { displayHeight, offSetY } = res;
706
705
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined') return;
707
706
  if (isIosDevice) return res;
708
707
  if (isAndroidDevice) {
709
708
  const deviceRatio = window.devicePixelRatio;
710
709
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio);
711
710
  const cssOffsetY = Math.ceil(offSetY / deviceRatio);
712
711
  return {
713
712
  displayHeight: cssDisplayHeight,
714
713
  offSetY: cssOffsetY,
715
714
  };
716
715
  }
717
716
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
718
717
  data: params,
719
718
  });
720
719
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
721
720
  data: params,
722
721
  });
723
722
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
724
723
  data: params,
725
724
  });
726
725
  nativePageRegisterMessage(Message_Type.NATIVE_TO_SHOW_CART_BTN, {
727
726
  data: params,
728
727
  });
729
728
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_REGISTER, {
730
729
  data: params,
731
730
  });
732
731
  callBack &&
733
732
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
734
733
  Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE
735
734
  ] = callBack);
736
735
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE, {
737
736
  data: {},
738
737
  });
739
738
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_SYNC, {
740
739
  data: {
741
740
  followed: followState,
742
741
  },
743
742
  });
744
743
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_LIVE_RESERVE_STATE, {
745
744
  data: params,
746
745
  });
747
746
  Taro.eventCenter.on('SEND_MSG_TO_NATIVE', (key, params) => {
748
747
  nativePageRegisterMessage(key, {
749
748
  data: params,
750
749
  });
751
750
  });
752
751
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_SCROLL_TO_TOP, {
753
752
  data: params,
754
753
  });
755
754
  functionid: string;
756
755
  callBack &&
757
756
  params.functionid &&
758
757
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
759
758
  Message_Type.GET_COLOR_API_DATA + '_' + params.functionid
760
759
  ] = callBack);
761
760
  nativePageRegisterMessage(Message_Type.GET_COLOR_API_DATA, {
762
761
  data: params.functionid,
763
762
  });
764
763
  callBack &&
765
764
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
766
765
  Message_Type.GET_ENTER_SHOP_OPEN_APP
767
766
  ] = callBack);
768
767
  nativePageRegisterMessage(Message_Type.GET_ENTER_SHOP_OPEN_APP, {});
769
768
  callBack &&
770
769
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
771
770
  Message_Type.NEED_REFRESH_PRODUCT
772
771
  ] = callBack);
773
772
  nativePageRegisterMessage(Message_Type.NEED_REFRESH_PRODUCT, {});
774
773
  nativePageRegisterMessage(Message_Type.DO_FOLLOW, params);
775
774
  callBack &&
776
775
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
777
776
  Message_Type.FOLLOW_STATE_CHANGED
778
777
  ] = callBack);
779
778
  nativePageRegisterMessage(Message_Type.FOLLOW_STATE_CHANGED, {});
780
779
  nativePageRegisterMessage(Message_Type.SHOW_BACK_TOTOP, {
781
780
  data: isShow,
782
781
  });
783
782
  callBack &&
784
783
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
785
784
  Message_Type.GET_SELECTEDPARAM
786
785
  ] = callBack);
787
786
  nativePageRegisterMessage(Message_Type.GET_SELECTEDPARAM, {});
788
787
  callBack &&
789
788
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
790
789
  Message_Type.SET_SELECTEDPARAM
791
790
  ] = callBack);
792
791
  nativePageRegisterMessage(Message_Type.SET_SELECTEDPARAM, {});
793
792
  type: string,
794
793
  barFilterInfos: any[],
795
794
  limitedRedPacketTime: number,
796
795
  nativePageRegisterMessage(Message_Type.UPDATE_BARFILTER, {
797
796
  data: { type, limitedRedPacketTime, barFilterInfos },
798
797
  });
799
798
  callBack &&
800
799
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
801
800
  Message_Type.OPENAPP_CHANGED
802
801
  ] = callBack);
803
802
  nativePageRegisterMessage(Message_Type.OPENAPP_CHANGED, {});
803
+ import Taro from '@tarojs/taro';
804
804
  isH5AndJdShopView,
805
805
  isJdApp,
806
806
  isIosDevice,
807
807
  isAndroidDevice,
808
808
  isJdAndIosDevice,
809
809
  isJdAndAndroidDevice,
810
810
  jdAppVersionCompare,
811
811
  isAppStowShop,
812
812
  isJdAndHarmonyDevice,
813
813
  isInJdShopView,
814
814
  (window.JDJshopViewInfo = {
815
815
  androidTouchSlop: 5,
816
816
  getAndroidTouchSlopState: false,
817
817
  });
818
818
  (state) => {
819
819
  console.log('document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
820
820
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state ? 0 : 1);
821
821
  },
822
822
  1500,
823
823
  { leading: false, trailing: true },
824
824
  (state) => {
825
825
  console.log('IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
826
826
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state);
827
827
  },
828
828
  1500,
829
829
  { leading: true, trailing: false },
830
830
  if (!isJdApp) {
831
831
  if (isH5) {
832
832
 
833
833
  const documentHandleVisibilityChange = () => {
834
834
  const state = document.hidden;
835
835
  window.startDocumentVisibilityChange && documentThrottledTrigger(state);
836
836
  };
837
837
  document.removeEventListener('visibilitychange', documentHandleVisibilityChange);
838
838
  console.log('每次进入页面先清除浏览器visibilitychange监听事件');
839
839
  setTimeout(() => {
840
840
  document.addEventListener('visibilitychange', documentHandleVisibilityChange, false);
841
841
  window.startDocumentVisibilityChange = true;
842
842
  }, 3000);
843
843
  }
844
844
  } else {
845
845
 
846
846
  !window.webviewVisible &&
847
847
  (window.webviewVisible = (state) => {
848
848
  if (window.startDocumentVisibilityChange) {
849
849
  webviewThrottledTrigger(state);
850
850
  } else {
851
851
  Taro.eventCenter.trigger(
852
852
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE_INIT_NOW_TIME,
853
853
  state,
854
854
  );
855
855
  }
856
856
  state === 1 && taroEventSendPageScrollInfo();
857
857
  });
858
858
  setTimeout(() => {
859
859
  window.startDocumentVisibilityChange = true;
860
860
  }, 3000);
861
861
  !window.floatReceiveData && (window.floatReceiveData = () => {});
862
862
  }
863
863
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
864
864
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
865
865
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
866
866
  displayHeight: 1920,
867
867
  offSetY: 0,
868
868
  };
869
869
  if (options) {
870
870
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options;
871
871
  }
872
872
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {};
873
873
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes);
874
874
  console.log('PageScrollEnd fire');
875
875
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options);
876
876
  const { businessType } = options;
877
877
  switch (businessType) {
878
878
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
879
879
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options);
880
880
  break;
881
881
  case H5_MSG_TO_H5_BUSINESSTYPE.h5BaseDataChange:
882
882
  Taro.eventCenter.trigger(TaroEventType.H5_BASE_DATA_CHANGE_REGISTER, options);
883
883
  break;
884
884
  default:
885
885
  break;
886
886
  }
887
887
  const { shopHomeExtendInfo } = options;
888
888
  if (shopHomeExtendInfo) {
889
889
  Taro.eventCenter.trigger(TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA, shopHomeExtendInfo);
890
890
  }
891
891
  window && window.scrollTo(0, 0);
892
892
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options);
893
893
  const { action, params } = options;
894
894
  console.log('taroEventShopStowSend', options);
895
895
  if (action) {
896
896
  Taro.eventCenter.trigger(action, params);
897
897
  }
898
898
  NATIVE_PAGE_READ: 'pageReady',
899
899
  NATIVE_PAGE_FINISH: 'pageFinish',
900
900
  NATIVE_INFO_DATA: 'nativeInfoData',
901
901
  NATIVE_PAGE_SCROLL: 'pageScroll',
902
902
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
903
903
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
904
904
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
905
905
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
906
906
  NATIVE_MOBILE_CONFIG: 'getMobileConfig',
907
907
  NATIVE_SHOW_TOAST: 'showToast',
908
908
  NATIVE_SHOW_DIALOG: 'showDialog',
909
909
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
910
910
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
911
911
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
912
912
  NATIVE_ADD_CART: 'addCart',
913
913
  NATIVE_JUMP_TAB_BAR: 'jumpTabBar',
914
914
  NATIVE_OPEN_FLOAT: 'openFloat',
915
915
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
916
916
  NAVTIVE_FLOAT_READY: 'floatReady',
917
917
  NATIVE_REFRESH_PAGE: 'refreshPage',
918
918
  PAGE_PV_PARAM: 'pagePvParam',
919
919
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
920
920
  NATIVE_POP_WEBVIEW: 'popWebview',
921
921
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
922
922
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
923
923
  UPDATE_NATIVE_DATA: 'updateNativeData',
924
924
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
925
925
  LUXURY_INFORM_CHANGE_HEIGHT: 'sendImmersionStatus',
926
926
  NATIVE_SHOPSTOW_SEND: 'sendMsgToShopStow',
927
927
  NATIVE_UPDATE_PAGE_INFO: 'pageCountInfo',
928
928
  NATIVE_TO_BUYER_SHOW_DETAIL: 'jumpBuyerShowDetail',
929
929
  NATIVE_TO_HIDE_JD_SHOP_HEADER: 'hideNativeHeader',
930
930
  NATIVE_TO_SHOW_CART_BTN: 'showCartButton',
931
931
  NATIVE_IMMERSIVEHEADER_STATE_CHANGE: 'immersiveHeaderStateChange',
932
932
  SHOP_FOLLOW_STATE_REGISTER: 'shopFollowStateRegister',
933
933
  SHOP_FOLLOW_STATE_SYNC: 'shopFollowStateSync',
934
934
  NATIVE_GET_SHOP_FOLLOW_STATE: 'getShopFollowState',
935
935
  H5_TO_NATIVE_LIVE_RESERVE_STATE: 'shopLiveReserveStateSync',
936
936
  H5_TO_NATIVE_SCROLL_TO_TOP: 'expertShopScrollToTop',
937
937
  GET_COLOR_API_DATA: 'getColorApiData',
938
938
  GET_ENTER_SHOP_OPEN_APP: 'getEnterShopOpenApp',
939
939
  NEED_REFRESH_PRODUCT: 'needRefreshProduct',
940
940
  DO_FOLLOW: 'doFollow',
941
941
  FOLLOW_STATE_CHANGED: 'followStateChanged',
942
942
  SHOW_BACK_TOTOP: 'showBackToTop',
943
943
  GET_SELECTEDPARAM: 'getRequestSelectedParam',
944
944
  SET_SELECTEDPARAM: 'setRequestSelectedParam',
945
945
  UPDATE_BARFILTER: 'updateBarFilterInfos',
946
946
  OPENAPP_CHANGED: 'openappChanged',
947
947
  GET_ACCESSIBILITY_IS_RUNNING: 'getAccessibilityIsRunning',
948
948
  OPEN: 'open',
949
949
  CLOSE: 'close',
950
950
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
951
951
  h5BaseDataChange: 'h5BaseDataChange',
952
952
  type = Message_Type.NATIVE_PAGE_READ,
953
953
  sendData: null | object = null,
954
954
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
955
955
  console.log(
956
956
  '初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView',
957
957
  isAppStowShop,
958
958
  type,
959
959
  sendData,
960
960
  isJdApp,
961
961
  isH5AndJdShopView,
962
962
  callBackName,
963
963
  );
964
964
  if (isJdApp) {
965
965
  const getCallBackName = `window.${callBackName}`;
966
966
  let getRouterParam = {
967
967
  type,
968
968
  callBackName: getCallBackName,
969
969
  };
970
970
  if (!isAppStowShop) {
971
971
  getRouterParam['newHomePage'] = true;
972
972
  }
973
973
  if (sendData) {
974
974
  getRouterParam = Object.assign({}, getRouterParam, sendData);
975
975
  }
976
976
  if (isIosDevice) {
977
977
  const routerURL = isAppStowShop
978
978
  ? 'router://JDBDecorationPlatformModule/wrtNative'
979
979
  : 'router://JDShopModule/wrtNative';
980
980
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
981
981
  callRouterIOS({
982
982
  routerURL,
983
983
  routerParam: getRouterParam,
984
984
  });
985
985
  } else {
986
986
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
987
987
  method: 'callRouterModuleWithParams',
988
988
  params: {
989
989
  routerURL,
990
990
  serialize: '1',
991
991
  routerParam: JSON.stringify(getRouterParam),
992
992
  callBackName: getCallBackName,
993
993
  callBackId: `${callBackName}Ios`,
994
994
  },
995
995
  });
996
996
  }
997
997
  } else if (isAndroidDevice) {
998
998
  if (type === Message_Type.NATIVE_MOBILE_CONFIG && jdAppVersionCompare('13.2.8') >= 0) {
999
999
  callRouterAndroid({
1000
1000
  routerURL: 'router://JDJShopModule/wrtNative',
1001
1001
  routerParam: getRouterParam,
1002
1002
  });
1003
1003
  } else {
1004
1004
  window?.JDJshop?.wrtNative(
1005
1005
  JSON.stringify({
1006
1006
  routerParam: JSON.stringify(getRouterParam),
1007
1007
  serialize: '1',
1008
1008
  callBackName: getCallBackName,
1009
1009
  callBackId: `${callBackName}Android`,
1010
1010
  }),
1011
1011
  );
1012
1012
  }
1013
1013
  } else if (isJdAndHarmonyDevice) {
1014
1014
  const plugin = 'JdShopPlugin';
1015
1015
  const action = type;
1016
1016
  const params = {
1017
1017
  routerURL: '',
1018
1018
  routerParam: getRouterParam,
1019
1019
  };
1020
1020
  window.XWebView &&
1021
1021
  window.XWebView.callNative(
1022
1022
  plugin,
1023
1023
  action,
1024
1024
  JSON.stringify(params),
1025
1025
  getCallBackName,
1026
1026
  `${callBackName}HarmonyOS`,
1027
1027
  );
1028
1028
  }
1029
1029
  return true;
1030
1030
  }
1031
1031
  return false;
1032
1032
  if (isJdApp) {
1033
1033
  if (isIosDevice) {
1034
1034
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
1035
1035
  method: 'close',
1036
1036
  });
1037
1037
  } else if (isAndroidDevice) {
1038
1038
  window?.XView && window?.XView.close();
1039
1039
  } else if (isJdAndHarmonyDevice) {
1040
1040
  !isInLiveroomChannel && nativeClosePopWebView();
1041
1041
  if (isInLiveroomChannel && window?.JDLiveAppJS) {
1042
1042
  window?.JDLiveAppJS?.handleJs(
1043
1043
  JSON.stringify([
1044
1044
  {
1045
1045
  action: 'closeWeb',
1046
1046
  params: {},
1047
1047
  },
1048
1048
  ]),
1049
1049
  );
1050
1050
  } else {
1051
1051
  window?.XWebView?.callNative &&
1052
1052
  window.XWebView.callNative(
1053
1053
  'JDXViewPlugin',
1054
1054
  'closeLayer2',
1055
1055
  JSON.stringify({}),
1056
1056
  'shopxCloseXview',
1057
1057
  '1',
1058
1058
  );
1059
1059
  }
1060
1060
  }
1061
1061
  }
1062
1062
  console.log('showToastByRouter:', title, showType);
1063
1063
  if (isJdApp) {
1064
1064
  const routerParam = {
1065
1065
  message: title,
1066
1066
  iconType: showType,
1067
1067
  duration,
1068
1068
  };
1069
1069
  if (isIosDevice) {
1070
1070
  callRouterIOS({
1071
1071
  routerURL: 'router://JDShopModule/showToast',
1072
1072
  routerParam,
1073
1073
  });
1074
1074
  } else if (isAndroidDevice) {
1075
1075
  callRouterAndroid({
1076
1076
  routerURL: 'router://JDJShopModule/showToast',
1077
1077
  routerParam,
1078
1078
  });
1079
1079
  } else if (isJdAndHarmonyDevice) {
1080
1080
  const getHarmonyVersion = window?.shopGlobalSwitch?.useNativeHarmonyToastVersion;
1081
1081
  if (
1082
1082
  getHarmonyVersion &&
1083
1083
  jdAppVersionCompare(getHarmonyVersion) >= 0 &&
1084
1084
  !isInJdShopView &&
1085
1085
  window?.jmfe?.callRouter
1086
1086
  ) {
1087
1087
  const params = {
1088
1088
  routerURL: 'router://JDJShopxModule/showToast',
1089
1089
  routerParam: routerParam,
1090
1090
  sync: '',
1091
1091
  };
1092
1092
  window.jmfe.callRouter(params).then((res) => {
1093
1093
  console.log('鸿蒙调用toast成功', res);
1094
1094
  });
1095
1095
  } else {
1096
1096
  const plugin = 'JdShopPlugin';
1097
1097
  const action = 'showToast';
1098
1098
  const params = {
1099
1099
  routerURL: 'router://JDJShopModule/showToast',
1100
1100
  routerParam: routerParam,
1101
1101
  };
1102
1102
  window.XWebView && window.XWebView.callNative(plugin, action, JSON.stringify(params));
1103
1103
  }
1104
1104
  }
1105
1105
  }
1106
1106
  console.log('nativePageLoadReady called');
1107
1107
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1108
1108
  Message_Type.NATIVE_INFO_DATA
1109
1109
  ] = async (data: any) => {
1110
1110
  console.log('nativePageLoadReady callBack:', callBack, ', data:', data);
1111
1111
  callBack && callBack(data);
1112
1112
  };
1113
1113
  nativePageGetMessageInitCallBack();
1114
1114
  nativePageRegisterMessage(
1115
1115
  Message_Type.NATIVE_PAGE_READ,
1116
1116
  sendData,
1117
1117
  Message_CallBack_Name.MESSAGE_HOME_INIT,
1118
1118
  );
1119
1119
  return nativePageRegisterMessage(
1120
1120
  Message_Type.NATIVE_PAGE_FINISH,
1121
1121
  null,
1122
1122
  Message_CallBack_Name.MESSAGE_HOME_INIT,
1123
1123
  );
1124
1124
  callBack &&
1125
1125
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1126
1126
  Message_Type.NATIVE_GET_SCROLL_TOP
1127
1127
  ] = callBack);
1128
1128
  return nativePageRegisterMessage(
1129
1129
  Message_Type.NATIVE_GET_SCROLL_TOP,
1130
1130
  null,
1131
1131
  Message_CallBack_Name.MESSAGE_HOME_INIT,
1132
1132
  );
1133
1133
  callBack &&
1134
1134
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1135
1135
  Message_Type.NATIVE_TO_SCROLL_TOP
1136
1136
  ] = callBack);
1137
1137
  nativePageRegisterMessage(
1138
1138
  Message_Type.NATIVE_TO_SCROLL_TOP,
1139
1139
  {
1140
1140
  data: {
1141
1141
  scrollTop,
1142
1142
  },
1143
1143
  },
1144
1144
  Message_CallBack_Name.MESSAGE_HOME_INIT,
1145
1145
  );
1146
1146
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data);
1147
1147
  Taro.eventCenter.trigger(TaroEventType.SHOP_FOLLOW_STATE_REGISTER, data);
1148
1148
  Taro.eventCenter.trigger(TaroEventType.IMMERSIVEHEADER_STATE_CHANGE, data);
1149
1149
  configName: string,
1150
1150
  isBeforePageReady: boolean,
1151
1151
  return new Promise((resolve, reject) => {
1152
1152
  if (!isJdApp) {
1153
1153
  reject({
1154
1154
  code: -1,
1155
1155
  message: 'getMPaasConfigByNative 只在松果APP店铺内部调用有效。',
1156
1156
  });
1157
1157
  return;
1158
1158
  }
1159
1159
  if (
1160
1160
  isIosDevice &&
1161
1161
  isBeforePageReady &&
1162
1162
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
1163
1163
  ) {
1164
1164
  reject({
1165
1165
  code: -2,
1166
1166
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
1167
1167
  });
1168
1168
  return;
1169
1169
  }
1170
1170
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1171
1171
  Message_Type.NATIVE_MOBILE_CONFIG
1172
1172
  ] = (data: any) => {
1173
1173
  const configData = isAndroidDevice ? data : data?.data;
1174
1174
  const res = JSONParse(configData);
1175
1175
  resolve(res);
1176
1176
  };
1177
1177
  nativePageGetMessageInitCallBack();
1178
1178
  nativePageRegisterMessage(
1179
1179
  Message_Type.NATIVE_MOBILE_CONFIG,
1180
1180
  {
1181
1181
  data: {
1182
1182
  space: isIosDevice ? 'JDCDSHOP' : 'JDShop',
1183
1183
  configName,
1184
1184
  },
1185
1185
  },
1186
1186
  Message_CallBack_Name.MESSAGE_HOME_INIT,
1187
1187
  );
1188
1188
  });
1189
1189
  bussinessKey: string,
1190
1190
  isBeforePageReady: boolean,
1191
1191
  if (!bussinessKey) {
1192
1192
  return null;
1193
1193
  }
1194
1194
  if (!isJdApp) {
1195
1195
  return null;
1196
1196
  }
1197
1197
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`;
1198
1198
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`;
1199
1199
  let configData = window[CACHED_MPAAS_KEY];
1200
1200
  if (configData == null) {
1201
1201
  configData = await getMPaasConfigByNative(CONFIG_NAME, isBeforePageReady).catch((e) => {
1202
1202
  console.log('getMPaasConfigByNative error:', e);
1203
1203
  return null;
1204
1204
  });
1205
1205
  window[CACHED_MPAAS_KEY_HELPER] = {};
1206
1206
  window[CACHED_MPAAS_KEY] = configData;
1207
1207
  }
1208
1208
  if (configData) {
1209
1209
  const originData = configData[bussinessKey];
1210
1210
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey];
1211
1211
  try {
1212
1212
  if (hasParse || ['object', 'boolean', 'number'].includes(typeof originData)) {
1213
1213
  return originData;
1214
1214
  } else {
1215
1215
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true;
1216
1216
  const parseData = JSON.parse(configData[bussinessKey]);
1217
1217
  configData[bussinessKey] = parseData;
1218
1218
  return parseData;
1219
1219
  }
1220
1220
  } catch (e) {
1221
1221
  return originData;
1222
1222
  }
1223
1223
  }
1224
1224
  return null;
1225
1225
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE);
1226
1226
  if (isJdAndAndroidDevice) {
1227
1227
  callBack &&
1228
1228
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1229
1229
  Message_Type.NATIVE_HOME_PAGING_ENABLE
1230
1230
  ] = callBack);
1231
1231
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
1232
1232
  data: {
1233
1233
  enable: enable,
1234
1234
  },
1235
1235
  });
1236
1236
  }
1237
1237
  if (isJdAndAndroidDevice) {
1238
1238
  callBack &&
1239
1239
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1240
1240
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
1241
1241
  ] = callBack);
1242
1242
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP);
1243
1243
  }
1244
1244
  SUCCESS: 'success',
1245
1245
  FAIL: 'fail',
1246
1246
  NORMAL: 'normal',
1247
1247
  SUCCESS: 2,
1248
1248
  FAIL: 3,
1249
1249
  NORMAL: 1,
1250
1250
  SUCCESS: 2,
1251
1251
  FAIL: 3,
1252
1252
  NORMAL: 1,
1253
1253
  [ToastIosType.NORMAL]: ToastType.NORMAL,
1254
1254
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
1255
1255
  [ToastIosType.FAIL]: ToastType.FAIL,
1256
1256
  if (isShowNewRouterToast) {
1257
1257
  const changeShowType = isJdAndIosDevice
1258
1258
  ? toastIosTypeToNewToastType[showType] || showType
1259
1259
  : showType;
1260
1260
  showToastByRouter(title, changeShowType, duration * 1000);
1261
1261
  } else {
1262
1262
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
1263
1263
  data: {
1264
1264
  message: title,
1265
1265
  iconType: showType,
1266
1266
  duration,
1267
1267
  },
1268
1268
  });
1269
1269
  }
1270
1270
  routerURL,
1271
1271
  routerParam,
1272
1272
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
1273
1273
  isSync = false,
1274
1274
  const getCallBackName = `window.${callBackName}`;
1275
1275
  const params = {
1276
1276
  routerURL,
1277
1277
  serialize: '1',
1278
1278
  routerParam,
1279
1279
  callBackName: getCallBackName,
1280
1280
  callBackId: `${callBackName}Ios`,
1281
1281
  };
1282
1282
  console.log(
1283
1283
  'callRouterIOS routerURL:',
1284
1284
  routerURL,
1285
1285
  ',routerParam:',
1286
1286
  routerParam,
1287
1287
  'params',
1288
1288
  params,
1289
1289
  'isSync',
1290
1290
  isSync,
1291
1291
  );
1292
1292
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
1293
1293
  method: isSync ? 'callSyncRouterModuleWithParams' : 'callRouterModuleWithParams',
1294
1294
  params: JSON.stringify(params),
1295
1295
  });
1296
1296
  routerURL,
1297
1297
  routerParam,
1298
1298
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
1299
1299
  isSync = false,
1300
1300
  hasJdRouter = true,
1301
1301
  console.log(
1302
1302
  'callRouterAndroid routerURL:',
1303
1303
  routerURL,
1304
1304
  ',routerParam:',
1305
1305
  routerParam,
1306
1306
  'isSync',
1307
1307
  isSync,
1308
1308
  );
1309
1309
  const getCallBackName = `window.${callBackName}`;
1310
1310
  routerParam?.data &&
1311
1311
  typeof routerParam?.data === 'object' &&
1312
1312
  (routerParam.data = JSON.stringify(routerParam?.data));
1313
1313
  var params = {
1314
1314
  serialize: '1',
1315
1315
  routerURL,
1316
1316
  routerParam,
1317
1317
  callBackName: getCallBackName,
1318
1318
  callBackId: `${callBackName}Android`,
1319
1319
  };
1320
1320
  hasJdRouter && (params['jdRouter'] = '1');
1321
1321
  isSync
1322
1322
  ? window?.JDAppUnite?.callSyncRouterModuleWithParams(JSON.stringify(params))
1323
1323
  : window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params));
1324
1324
  pluginName,
1325
1325
  action,
1326
1326
  routerParam,
1327
1327
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
1328
1328
  isSync = false,
1329
1329
  const getCallBackName = `window.${callBackName}`;
1330
1330
  const params = {
1331
1331
  routerURL: '',
1332
1332
  routerParam: routerParam,
1333
1333
  };
1334
1334
  const outBridgeType = ['getLastAddress', 'getAddress'];
1335
1335
  console.log(
1336
1336
  'callRouterHarmony pluginName:',
1337
1337
  pluginName,
1338
1338
  'action',
1339
1339
  action,
1340
1340
  ',routerParam:',
1341
1341
  routerParam,
1342
1342
  'params',
1343
1343
  params,
1344
1344
  'isSync',
1345
1345
  isSync,
1346
1346
  );
1347
1347
  window?.XWebView?.callNative(
1348
1348
  pluginName,
1349
1349
  action,
1350
1350
  outBridgeType.includes(action) ? JSON.stringify(routerParam) : JSON.stringify(params),
1351
1351
  getCallBackName,
1352
1352
  `${callBackName}HarmonyOS`,
1353
1353
  );
1354
1354
  callRouterHarmony,
1355
1355
  callBack &&
1356
1356
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1357
1357
  Message_Type.NATIVE_SHOW_DIALOG
1358
1358
  ] = callBack);
1359
1359
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
1360
1360
  data: params,
1361
1361
  });
1362
1362
  if (!isJdApp) {
1363
1363
  return;
1364
1364
  }
1365
1365
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
1366
1366
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
1367
1367
  try {
1368
1368
  console.log('message2native 接收消息:', JSON.stringify(messageData));
1369
1369
  console.log('接收到原生通知返回的原始数据nativePageGetMessageInitCallBack', messageData);
1370
1370
  const getMessageJsonData = JSONParse(messageData);
1371
1371
  const { status } = getMessageJsonData;
1372
1372
  if (status == '0') {
1373
1373
  const { type, data } = getMessageJsonData?.data;
1374
1374
  const getSendJsonData = JSONParse(data);
1375
1375
  switch (type) {
1376
1376
  case Message_Type.NATIVE_INFO_DATA:
1377
1377
  case Message_Type.NATIVE_PAGE_FINISH:
1378
1378
  case Message_Type.NATIVE_GET_SCROLL_TOP:
1379
1379
  case Message_Type.NATIVE_TO_SCROLL_TOP:
1380
1380
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
1381
1381
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
1382
1382
  case Message_Type.NATIVE_MOBILE_CONFIG:
1383
1383
  case Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE:
1384
1384
  case Message_Type.GET_ENTER_SHOP_OPEN_APP:
1385
1385
  case Message_Type.FOLLOW_STATE_CHANGED:
1386
1386
  case Message_Type.NEED_REFRESH_PRODUCT:
1387
1387
  case Message_Type.GET_SELECTEDPARAM:
1388
1388
  case Message_Type.OPENAPP_CHANGED:
1389
1389
  case Message_Type.SET_SELECTEDPARAM:
1390
1390
  const getTypeCallBack =
1391
1391
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
1392
1392
  if (getTypeCallBack) {
1393
1393
  const isCallBackFunc = typeof getTypeCallBack === 'function';
1394
1394
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
1395
1395
  isCallBackFunc && getTypeCallBack(getSendJsonData);
1396
1396
  }
1397
1397
  break;
1398
1398
  case Message_Type.GET_COLOR_API_DATA:
1399
1399
  const combinType = `${type}_${getSendJsonData.functionId}`;
1400
1400
  const getcombinTypeCallBack =
1401
1401
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1402
1402
  combinType
1403
1403
  ];
1404
1404
  if (getcombinTypeCallBack) {
1405
1405
  const isCallBackFunc = typeof getcombinTypeCallBack === 'function';
1406
1406
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
1407
1407
  if (
1408
1408
  (isAndroidDevice || isIosDevice) &&
1409
1409
  getSendJsonData.functionData &&
1410
1410
  typeof getSendJsonData.functionData === 'string'
1411
1411
  ) {
1412
1412
  getSendJsonData.functionData = JSONParse(getSendJsonData.functionData);
1413
1413
  }
1414
1414
  isCallBackFunc && getcombinTypeCallBack(getSendJsonData);
1415
1415
  }
1416
1416
  break;
1417
1417
  case Message_Type.NATIVE_SHOW_DIALOG:
1418
1418
  const showDialogCallBack =
1419
1419
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
1420
1420
  if (showDialogCallBack) {
1421
1421
  const isCallBackFunc = typeof showDialogCallBack === 'function';
1422
1422
  console.log(
1423
1423
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
1424
1424
  type,
1425
1425
  isCallBackFunc,
1426
1426
  getMessageJsonData,
1427
1427
  );
1428
1428
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data);
1429
1429
  }
1430
1430
  break;
1431
1431
  case Message_Type.NATIVE_PAGE_SCROLL:
1432
1432
  taroEventSendPageScrollInfo(data);
1433
1433
  break;
1434
1434
  case Message_Type.NATIVE_PAGE_SCROLL_END:
1435
1435
  taroEventSendPageScrollEndInfo(data);
1436
1436
  break;
1437
1437
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
1438
1438
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data);
1439
1439
  taroEventH5SendMsgToH5(getSendJsonData);
1440
1440
  break;
1441
1441
  case Message_Type.UPDATE_NATIVE_DATA:
1442
1442
  taroEventUpdateNativeData(getSendJsonData);
1443
1443
  break;
1444
1444
  case Message_Type.H5_TO_SCROLL_TOP:
1445
1445
  taroEventH5ToScrollTop();
1446
1446
  break;
1447
1447
  case Message_Type.NATIVE_SHOPSTOW_SEND:
1448
1448
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND', messageData);
1449
1449
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
1450
1450
  taroEventShopStowSend(getSendJsonData);
1451
1451
  break;
1452
1452
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
1453
1453
  taroEventSendImmersionStatus(data);
1454
1454
  break;
1455
1455
  case Message_Type.NATIVE_IMMERSIVEHEADER_STATE_CHANGE:
1456
1456
  taroEventSendImmersiveHeaderChange(data);
1457
1457
  break;
1458
1458
  case Message_Type.SHOP_FOLLOW_STATE_REGISTER:
1459
1459
  taroEventSendShopFollowStateChange(data);
1460
1460
  break;
1461
1461
  default:
1462
1462
  }
1463
1463
  } else {
1464
1464
  console.log('传递数据获取异常', getMessageJsonData);
1465
1465
  }
1466
1466
  } catch (e) {
1467
1467
  console.log('获取转换异常结果', e);
1468
1468
  }
1469
1469
  };
1470
1470
  }
1471
1471
  console.warn('🚀 ~~ JumpTabBarInCurrentShop() ~~ params:', params);
1472
1472
  nativePageRegisterMessage(Message_Type.NATIVE_JUMP_TAB_BAR, {
1473
1473
  data: params,
1474
1474
  });
1475
1475
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
1476
1476
  data: params,
1477
1477
  });
1478
1478
  const changeData = {
1479
1479
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
1480
1480
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
1481
1481
  };
1482
1482
  if (isChangeDefaultPopViewHeight && !params?.height) {
1483
1483
  changeData.height = Math.round(window.screen.height * 0.8);
1484
1484
  changeData.borderRadius = 12;
1485
1485
  }
1486
1486
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1487
1487
  data: {
1488
1488
  ...changeData,
1489
1489
  ...params,
1490
1490
  },
1491
1491
  });
1492
1492
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1493
1493
  data: {
1494
1494
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
1495
1495
  ...params,
1496
1496
  },
1497
1497
  });
1498
1498
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS);
1499
1499
  console.log('popWebview关闭');
1500
1500
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
1501
1501
  data: params,
1502
1502
  });
1503
1503
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
1504
1504
  data: params,
1505
1505
  });
1506
1506
  window &&
1507
1507
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`);
1508
1508
  const { displayHeight, offSetY } = res;
1509
1509
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined') return;
1510
1510
  if (isIosDevice) return res;
1511
1511
  if (isAndroidDevice) {
1512
1512
  const deviceRatio = window.devicePixelRatio;
1513
1513
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio);
1514
1514
  const cssOffsetY = Math.ceil(offSetY / deviceRatio);
1515
1515
  return {
1516
1516
  displayHeight: cssDisplayHeight,
1517
1517
  offSetY: cssOffsetY,
1518
1518
  };
1519
1519
  }
1520
1520
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
1521
1521
  data: params,
1522
1522
  });
1523
1523
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
1524
1524
  data: params,
1525
1525
  });
1526
1526
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
1527
1527
  data: params,
1528
1528
  });
1529
1529
  nativePageRegisterMessage(Message_Type.NATIVE_TO_SHOW_CART_BTN, {
1530
1530
  data: params,
1531
1531
  });
1532
1532
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_REGISTER, {
1533
1533
  data: params,
1534
1534
  });
1535
1535
  callBack &&
1536
1536
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1537
1537
  Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE
1538
1538
  ] = callBack);
1539
1539
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE, {
1540
1540
  data: {},
1541
1541
  });
1542
1542
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_SYNC, {
1543
1543
  data: {
1544
1544
  followed: followState,
1545
1545
  },
1546
1546
  });
1547
1547
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_LIVE_RESERVE_STATE, {
1548
1548
  data: params,
1549
1549
  });
1550
1550
  Taro.eventCenter.on('SEND_MSG_TO_NATIVE', (key, params) => {
1551
1551
  nativePageRegisterMessage(key, {
1552
1552
  data: params,
1553
1553
  });
1554
1554
  });
1555
1555
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_SCROLL_TO_TOP, {
1556
1556
  data: params,
1557
1557
  });
1558
1558
  functionid: string;
1559
1559
  callBack &&
1560
1560
  params.functionid &&
1561
1561
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1562
1562
  Message_Type.GET_COLOR_API_DATA + '_' + params.functionid
1563
1563
  ] = callBack);
1564
1564
  nativePageRegisterMessage(Message_Type.GET_COLOR_API_DATA, {
1565
1565
  data: params.functionid,
1566
1566
  });
1567
1567
  callBack &&
1568
1568
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1569
1569
  Message_Type.GET_ENTER_SHOP_OPEN_APP
1570
1570
  ] = callBack);
1571
1571
  nativePageRegisterMessage(Message_Type.GET_ENTER_SHOP_OPEN_APP, {});
1572
1572
  callBack &&
1573
1573
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1574
1574
  Message_Type.NEED_REFRESH_PRODUCT
1575
1575
  ] = callBack);
1576
1576
  nativePageRegisterMessage(Message_Type.NEED_REFRESH_PRODUCT, {});
1577
1577
  nativePageRegisterMessage(Message_Type.DO_FOLLOW, params);
1578
1578
  callBack &&
1579
1579
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1580
1580
  Message_Type.FOLLOW_STATE_CHANGED
1581
1581
  ] = callBack);
1582
1582
  nativePageRegisterMessage(Message_Type.FOLLOW_STATE_CHANGED, {});
1583
1583
  nativePageRegisterMessage(Message_Type.SHOW_BACK_TOTOP, {
1584
1584
  data: isShow,
1585
1585
  });
1586
1586
  callBack &&
1587
1587
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1588
1588
  Message_Type.GET_SELECTEDPARAM
1589
1589
  ] = callBack);
1590
1590
  nativePageRegisterMessage(Message_Type.GET_SELECTEDPARAM, {});
1591
1591
  callBack &&
1592
1592
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1593
1593
  Message_Type.SET_SELECTEDPARAM
1594
1594
  ] = callBack);
1595
1595
  nativePageRegisterMessage(Message_Type.SET_SELECTEDPARAM, {});
1596
1596
  type: string,
1597
1597
  barFilterInfos: any[],
1598
1598
  limitedRedPacketTime: number,
1599
1599
  nativePageRegisterMessage(Message_Type.UPDATE_BARFILTER, {
1600
1600
  data: { type, limitedRedPacketTime, barFilterInfos },
1601
1601
  });
1602
1602
  callBack &&
1603
1603
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1604
1604
  Message_Type.OPENAPP_CHANGED
1605
1605
  ] = callBack);
1606
1606
  nativePageRegisterMessage(Message_Type.OPENAPP_CHANGED, {});