@conecli/cone-render 0.10.1-shop-beta.28 → 0.10.1-shop-beta.29

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