@conecli/cone-render 0.10.1-beta.5 → 0.10.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/api/index.ts +1 -1
  2. package/dist/common/const.ts +1 -1
  3. package/dist/common/environmentType.ts +1 -1
  4. package/dist/common/index.h5.ts +1 -1
  5. package/dist/common/index.jd.ts +1 -1
  6. package/dist/common/index.ts +1 -1
  7. package/dist/common/index.weapp.ts +1 -1
  8. package/dist/common/pageType.ts +1 -1
  9. package/dist/common/sgmCustomCode.ts +1 -1
  10. package/dist/components/base/CountDown/index.module.scss +49 -44
  11. package/dist/components/base/CountDown/index.tsx +1 -1
  12. package/dist/components/base/CustomVideo/common.ts +1 -0
  13. package/dist/components/base/CustomVideo/index.tsx +1 -1
  14. package/dist/components/base/LazyLoadImage/index.h5.module.scss +11 -6
  15. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  16. package/dist/components/base/Price/Base/index.tsx +1 -1
  17. package/dist/components/base/Price/Double/index.module.scss +8 -0
  18. package/dist/components/base/Price/Double/index.tsx +1 -1
  19. package/dist/components/floorItem.tsx +1 -1
  20. package/dist/components/isv/Floor/index.tsx +1 -1
  21. package/dist/interface/component.ts +1 -1
  22. package/dist/interface/jumpEventReport.ts +1 -1
  23. package/dist/interface/service.ts +1 -1
  24. package/dist/jumpEventReport/base.ts +1 -1
  25. package/dist/jumpEventReport/index.jd.ts +1 -1
  26. package/dist/jumpEventReport/index.weapp.ts +1 -1
  27. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  28. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  29. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  30. package/dist/jumpEventReport/web.base.ts +1 -1
  31. package/dist/jumpEventReport/web.jd.ts +1 -1
  32. package/dist/jumpEventReport/web.jdb.ts +1 -1
  33. package/dist/jumpEventReport/web.jdjch.ts +1 -1
  34. package/dist/jumpEventReport/web.jxwxapp.ts +1 -1
  35. package/dist/jumpEventReport/web.pc.ts +1 -1
  36. package/dist/jumpEventReport/web.tjapp.ts +1 -1
  37. package/dist/jumpEventReport/web.tjm.ts +1 -1
  38. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  39. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  40. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  41. package/dist/open/api/util.ts +1 -1
  42. package/dist/sass/base.scss +142 -141
  43. package/dist/service/fetchGateway.ts +1 -1
  44. package/dist/service/http/colorSign.ts +1 -1
  45. package/dist/service/http/h5Http.ts +1 -0
  46. package/dist/service/http/index.h5.ts +1 -0
  47. package/dist/service/requestServer.h5.ts +1 -0
  48. package/dist/service/requestServer.ts +1 -1
  49. package/dist/utils/connectNativeJsBridge.ts +1 -1
  50. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  51. package/dist/utils/h5Utils.ts +1 -1
  52. package/dist/utils/index.h5.ts +1 -1
  53. package/dist/utils/index.ts +1 -1
  54. package/dist/utils/index.weapp.ts +1 -1
  55. package/dist/utils/utils.ts +1 -1
  56. package/package.json +35 -29
  57. package/dist/utils/memberFormatUtils.js +0 -1
@@ -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
  androidTouchSlop: 5,
11
10
  getAndroidTouchSlopState: false,
12
11
  (state) => {
13
12
  console.log(
14
13
  "document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:",
15
14
  state
16
15
  );
17
16
  Taro.eventCenter.trigger(
18
17
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
19
18
  state ? 0 : 1
20
19
  );
21
20
  },
22
21
  1500,
23
22
  { leading: false, trailing: true }
24
23
  (state) => {
25
24
  console.log(
26
25
  "IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:",
27
26
  state
28
27
  );
29
28
  Taro.eventCenter.trigger(
30
29
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
31
30
  state
32
31
  );
33
32
  },
34
33
  1500,
35
34
  { leading: true, trailing: false }
36
35
  if (!isJdApp) {
37
36
  if (isH5) {
38
37
 
39
38
  const documentHandleVisibilityChange = () => {
40
39
  const state = document.hidden;
41
40
  window.startDocumentVisibilityChange && documentThrottledTrigger(state);
42
41
  };
43
42
  document.removeEventListener(
44
43
  "visibilitychange",
45
44
  documentHandleVisibilityChange
46
45
  );
47
46
  console.log("每次进入页面先清除浏览器visibilitychange监听事件");
48
47
  setTimeout(() => {
49
48
  document.addEventListener(
50
49
  "visibilitychange",
51
50
  documentHandleVisibilityChange,
52
51
  false
53
52
  );
54
53
  window.startDocumentVisibilityChange = true;
55
54
  }, 3000);
56
55
  }
57
56
  } else {
58
57
 
59
58
  !window.webviewVisible &&
60
59
  (window.webviewVisible = (state) => {
61
60
  window.startDocumentVisibilityChange && webviewThrottledTrigger(state);
62
61
  state === 1 && taroEventSendPageScrollInfo();
63
62
  });
64
63
  setTimeout(() => {
65
64
  window.startDocumentVisibilityChange = true;
66
65
  }, 3000);
67
66
  !window.floatReceiveData && (window.floatReceiveData = () => {});
68
67
  }
69
68
  MESSAGE_HOME_INIT: "messageHomeInitPageData",
70
69
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
71
70
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
72
71
  displayHeight: 1920,
73
72
  offSetY: 0,
74
73
  };
75
74
  if (options) {
76
75
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options;
77
76
  }
78
77
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {};
79
78
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes);
80
79
  console.log("PageScrollEnd fire");
81
80
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options);
82
81
  const { businessType } = options;
83
82
  switch (businessType) {
84
83
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
85
84
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options);
86
85
  break;
87
86
  default:
88
87
  break;
89
88
  }
90
89
  const { shopHomeExtendInfo } = options;
91
90
  if (shopHomeExtendInfo) {
92
91
  Taro.eventCenter.trigger(
93
92
  TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA,
94
93
  shopHomeExtendInfo
95
94
  );
96
95
  }
97
96
  window && window.scrollTo(0, 0);
98
97
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options);
99
98
  const { action, params } = options;
100
99
  console.log("taroEventShopStowSend", options);
101
100
  if (action) {
102
101
  Taro.eventCenter.trigger(action, params);
103
102
  }
104
103
  NATIVE_PAGE_READ: "pageReady",
105
104
  NATIVE_PAGE_FINISH: "pageFinish",
106
105
  NATIVE_INFO_DATA: "nativeInfoData",
107
106
  NATIVE_PAGE_SCROLL: "pageScroll",
108
107
  NATIVE_PAGE_SCROLL_END: "pageScrollEnd",
109
108
  NATIVE_GET_SCROLL_TOP: "nativeGetScrollTop",
110
109
  NATIVE_TO_SCROLL_TOP: "nativeToScrollTop",
111
110
  NATIVE_CLOSE_SCROLL_MESSAGE: "nativeCloseScrollMessage",
112
111
  NATIVE_MOBILE_CONFIG: "getMobileConfig",
113
112
  NATIVE_SHOW_TOAST: "showToast",
114
113
  NATIVE_SHOW_DIALOG: "showDialog",
115
114
  NATIVE_PAGE_LAYOUT_CHANGE: "pageLayoutChange",
116
115
  NATIVE_HOME_PAGING_ENABLE: "homePagingEnable",
117
116
  NATIVE_GET_SCALED_TOUCH_SLOP: "getScaledTouchSlop",
118
117
  NATIVE_ADD_CART: "addCart",
119
118
  NATIVE_OPEN_FLOAT: "openFloat",
120
119
  NATIVE_INJECT_JS_FILE: "needIsvPackage",
121
120
  NAVTIVE_FLOAT_READY: "floatReady",
122
121
  NATIVE_REFRESH_PAGE: "refreshPage",
123
122
  PAGE_PV_PARAM: "pagePvParam",
124
123
  NATIVE_SCORLL_VIEW: "nativeScrollControl",
125
124
  NATIVE_POP_WEBVIEW: "popWebview",
126
125
  NATIVE_H5_SEND_MSG_TO_H5: "h5SendMsgToH5",
127
126
  NATIVE_PUSH_NATIVE_PAGE: "pushNativePage",
128
127
  UPDATE_NATIVE_DATA: "updateNativeData",
129
128
  H5_TO_SCROLL_TOP: "h5ToScrollTop",
130
129
  LUXURY_INFORM_CHANGE_HEIGHT: "sendImmersionStatus",
131
130
  NATIVE_SHOPSTOW_SEND: "sendMsgToShopStow",
132
131
  NATIVE_UPDATE_PAGE_INFO: "pageCountInfo",
133
132
  NATIVE_TO_BUYER_SHOW_DETAIL: "jumpBuyerShowDetail",
134
133
  NATIVE_TO_HIDE_JD_SHOP_HEADER: "hideNativeHeader",
135
134
  NATIVE_TO_SHOW_CART_BTN: "showCartButton",
136
135
  OPEN: "open",
137
136
  CLOSE: "close",
138
137
  JOIN_MEMBER_SUCCESS: "joinMemberSuccess",
139
138
  type = Message_Type.NATIVE_PAGE_READ,
140
139
  sendData: null | object = null,
141
140
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT
142
141
  console.log(
143
142
  "初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView",
144
143
  isAppStowShop,
145
144
  type,
146
145
  sendData,
147
146
  isJdApp,
148
147
  isH5AndJdShopView,
149
148
  callBackName
150
149
  );
151
150
  if (isJdApp) {
152
151
  const getCallBackName = `window.${callBackName}`;
153
152
  let getRouterParam = {
154
153
  type,
155
154
  callBackName: getCallBackName,
156
155
  };
157
156
  if (!isAppStowShop) {
158
157
  getRouterParam["newHomePage"] = true;
159
158
  }
160
159
  if (sendData) {
161
160
  getRouterParam = Object.assign({}, getRouterParam, sendData);
162
161
  }
163
162
  if (isIosDevice) {
164
163
  const routerURL = isAppStowShop
165
164
  ? "router://JDBDecorationPlatformModule/wrtNative"
166
165
  : "router://JDShopModule/wrtNative";
167
166
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
168
167
  callRouterIOS({
169
168
  routerURL,
170
169
  routerParam: getRouterParam,
171
170
  });
172
171
  } else {
173
172
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
174
173
  method: "callRouterModuleWithParams",
175
174
  params: {
176
175
  routerURL,
177
176
  serialize: "1",
178
177
  routerParam: JSON.stringify(getRouterParam),
179
178
  callBackName: getCallBackName,
180
179
  callBackId: `${callBackName}Ios`,
181
180
  },
182
181
  });
183
182
  }
184
183
  } else if (isAndroidDevice) {
185
184
  if (
186
185
  type === Message_Type.NATIVE_MOBILE_CONFIG &&
187
186
  jdAppVersionCompare("13.2.8") >= 0
188
187
  ) {
189
188
  callRouterAndroid({
190
189
  routerURL: "router://JDJShopModule/wrtNative",
191
190
  routerParam: getRouterParam,
192
191
  });
193
192
  } else {
194
193
  window?.JDJshop?.wrtNative(
195
194
  JSON.stringify({
196
195
  routerParam: JSON.stringify(getRouterParam),
197
196
  serialize: "1",
198
197
  callBackName: getCallBackName,
199
198
  callBackId: `${callBackName}Android`,
200
199
  })
201
200
  );
202
201
  }
203
202
  }
204
203
  return true;
205
204
  }
206
205
  return false;
207
206
  if (isJdApp) {
208
207
  if (isIosDevice) {
209
208
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
210
209
  method: "close",
211
210
  });
212
211
  } else if (isAndroidDevice) {
213
212
  window?.XView && window?.XView.close();
214
213
  }
215
214
  }
216
215
  console.log("nativePageLoadReady called");
217
216
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
218
217
  Message_Type.NATIVE_INFO_DATA
219
218
  ] = async (data: any) => {
220
219
  console.log("nativePageLoadReady callBack:", callBack, ", data:", data);
221
220
  callBack && callBack(data);
222
221
  };
223
222
  nativePageGetMessageInitCallBack();
224
223
  nativePageRegisterMessage(
225
224
  Message_Type.NATIVE_PAGE_READ,
226
225
  sendData,
227
226
  Message_CallBack_Name.MESSAGE_HOME_INIT
228
227
  );
229
228
  return nativePageRegisterMessage(
230
229
  Message_Type.NATIVE_PAGE_FINISH,
231
230
  null,
232
231
  Message_CallBack_Name.MESSAGE_HOME_INIT
233
232
  );
234
233
  callBack &&
235
234
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
236
235
  Message_Type.NATIVE_GET_SCROLL_TOP
237
236
  ] = callBack);
238
237
  return nativePageRegisterMessage(
239
238
  Message_Type.NATIVE_GET_SCROLL_TOP,
240
239
  null,
241
240
  Message_CallBack_Name.MESSAGE_HOME_INIT
242
241
  );
243
242
  callBack &&
244
243
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
245
244
  Message_Type.NATIVE_TO_SCROLL_TOP
246
245
  ] = callBack);
247
246
  nativePageRegisterMessage(
248
247
  Message_Type.NATIVE_TO_SCROLL_TOP,
249
248
  {
250
249
  data: {
251
250
  scrollTop,
252
251
  },
253
252
  },
254
253
  Message_CallBack_Name.MESSAGE_HOME_INIT
255
254
  );
256
255
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data);
257
256
  configName: string,
258
257
  isBeforePageReady: boolean
259
258
  return new Promise((resolve, reject) => {
260
259
  if (!isJdApp) {
261
260
  reject({
262
261
  code: -1,
263
262
  message: "getMPaasConfigByNative 只在松果APP店铺内部调用有效。",
264
263
  });
265
264
  return;
266
265
  }
267
266
  if (
268
267
  isIosDevice &&
269
268
  isBeforePageReady &&
270
269
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
271
270
  ) {
272
271
  reject({
273
272
  code: -2,
274
273
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
275
274
  });
276
275
  return;
277
276
  }
278
277
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
279
278
  Message_Type.NATIVE_MOBILE_CONFIG
280
279
  ] = (data: any) => {
281
280
  const configData = isAndroidDevice ? data : data?.data;
282
281
  const res = JSONParse(configData);
283
282
  resolve(res);
284
283
  };
285
284
  nativePageGetMessageInitCallBack();
286
285
  nativePageRegisterMessage(
287
286
  Message_Type.NATIVE_MOBILE_CONFIG,
288
287
  {
289
288
  data: {
290
289
  space: isIosDevice ? "JDCDSHOP" : "JDShop",
291
290
  configName,
292
291
  },
293
292
  },
294
293
  Message_CallBack_Name.MESSAGE_HOME_INIT
295
294
  );
296
295
  });
297
296
  bussinessKey: string,
298
297
  isBeforePageReady: boolean
299
298
  if (!bussinessKey) {
300
299
  return null;
301
300
  }
302
301
  if (!isJdApp) {
303
302
  return null;
304
303
  }
305
304
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`;
306
305
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`;
307
306
  let configData = window[CACHED_MPAAS_KEY];
308
307
  if (configData == null) {
309
308
  configData = await getMPaasConfigByNative(
310
309
  CONFIG_NAME,
311
310
  isBeforePageReady
312
311
  ).catch((e) => {
313
312
  console.log("getMPaasConfigByNative error:", e);
314
313
  return null;
315
314
  });
316
315
  window[CACHED_MPAAS_KEY_HELPER] = {};
317
316
  window[CACHED_MPAAS_KEY] = configData;
318
317
  }
319
318
  if (configData) {
320
319
  const originData = configData[bussinessKey];
321
320
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey];
322
321
  try {
323
322
  if (
324
323
  hasParse ||
325
324
  ["object", "boolean", "number"].includes(typeof originData)
326
325
  ) {
327
326
  return originData;
328
327
  } else {
329
328
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true;
330
329
  const parseData = JSON.parse(configData[bussinessKey]);
331
330
  configData[bussinessKey] = parseData;
332
331
  return parseData;
333
332
  }
334
333
  } catch (e) {
335
334
  return originData;
336
335
  }
337
336
  }
338
337
  return null;
339
338
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE);
340
339
  if (isJdAndAndroidDevice) {
341
340
  callBack &&
342
341
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
343
342
  Message_Type.NATIVE_HOME_PAGING_ENABLE
344
343
  ] = callBack);
345
344
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
346
345
  data: {
347
346
  enable: enable,
348
347
  },
349
348
  });
350
349
  }
351
350
  if (isJdAndAndroidDevice) {
352
351
  callBack &&
353
352
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
354
353
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
355
354
  ] = callBack);
356
355
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP);
357
356
  }
358
357
  SUCCESS: "success",
359
358
  FAIL: "fail",
360
359
  NORMAL: "normal",
361
360
  SUCCESS: 2,
362
361
  FAIL: 3,
363
362
  NORMAL: 1,
364
363
  SUCCESS: 2,
365
364
  FAIL: 3,
366
365
  NORMAL: 1,
367
366
  [ToastIosType.NORMAL]: ToastType.NORMAL,
368
367
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
369
368
  [ToastIosType.FAIL]: ToastType.FAIL,
370
369
  if (isShowNewRouterToast) {
371
370
  const changeShowType = isJdAndIosDevice
372
371
  ? toastIosTypeToNewToastType[showType] || showType
373
372
  : showType;
374
373
  showToastByRouter(title, changeShowType, duration * 1000);
375
374
  } else {
376
375
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
377
376
  data: {
378
377
  message: title,
379
378
  iconType: showType,
380
379
  duration,
381
380
  },
382
381
  });
383
382
  }
384
383
  console.log("showToastByRouter:", title, showType);
385
384
  if (isJdApp) {
386
385
  const routerParam = {
387
386
  message: title,
388
387
  iconType: showType,
389
388
  duration,
390
389
  };
391
390
  if (isIosDevice) {
392
391
  callRouterIOS({
393
392
  routerURL: "router://JDShopModule/showToast",
394
393
  routerParam,
395
394
  });
396
395
  } else if (isAndroidDevice) {
397
396
  callRouterAndroid({
398
397
  routerURL: "router://JDJShopModule/showToast",
399
398
  routerParam,
400
399
  });
401
400
  }
402
401
  }
403
402
  routerURL,
404
403
  routerParam,
405
404
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
406
405
  }) => {
407
406
  console.log(
408
407
  "callRouterIOS routerURL:",
409
408
  routerURL,
410
409
  ",routerParam:",
411
410
  routerParam
412
411
  );
413
412
  const getCallBackName = `window.${callBackName}`;
414
413
  const params = {
415
414
  routerURL,
416
415
  serialize: "1",
417
416
  routerParam,
418
417
  callBackName: getCallBackName,
419
418
  callBackId: `${callBackName}Ios`,
420
419
  };
421
420
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
422
421
  method: "callRouterModuleWithParams",
423
422
  params: JSON.stringify(params),
424
423
  });
425
424
  routerURL,
426
425
  routerParam,
427
426
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
428
427
  }) => {
429
428
  console.log(
430
429
  "callRouterAndroid routerURL:",
431
430
  routerURL,
432
431
  ",routerParam:",
433
432
  routerParam
434
433
  );
435
434
  const getCallBackName = `window.${callBackName}`;
436
435
  routerParam?.data &&
437
436
  typeof routerParam?.data === "object" &&
438
437
  (routerParam.data = JSON.stringify(routerParam?.data));
439
438
  var params = {
440
439
  jdRouter: "1",
441
440
  serialize: "1",
442
441
  routerURL,
443
442
  routerParam,
444
443
  callBackName: getCallBackName,
445
444
  callBackId: `${callBackName}Android`,
446
445
  };
447
446
  window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params));
448
447
  callBack &&
449
448
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
450
449
  Message_Type.NATIVE_SHOW_DIALOG
451
450
  ] = callBack);
452
451
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
453
452
  data: params,
454
453
  });
455
454
  if (!isJdApp) {
456
455
  return;
457
456
  }
458
457
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
459
458
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
460
459
  try {
461
460
  const getMessageJsonData = JSONParse(messageData);
462
461
  const { status } = getMessageJsonData;
463
462
  if (status == "0") {
464
463
  const { type, data } = getMessageJsonData?.data;
465
464
  const getSendJsonData = JSONParse(data);
466
465
  switch (type) {
467
466
  case Message_Type.NATIVE_INFO_DATA:
468
467
  case Message_Type.NATIVE_PAGE_FINISH:
469
468
  case Message_Type.NATIVE_GET_SCROLL_TOP:
470
469
  case Message_Type.NATIVE_TO_SCROLL_TOP:
471
470
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
472
471
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
473
472
  case Message_Type.NATIVE_MOBILE_CONFIG:
474
473
  const getTypeCallBack =
475
474
  Message_Trigger_CallBackFuncObj[
476
475
  Message_CallBack_Name.MESSAGE_HOME_INIT
477
476
  ][type];
478
477
  if (getTypeCallBack) {
479
478
  const isCallBackFunc = typeof getTypeCallBack === "function";
480
479
  console.log(
481
480
  "接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData",
482
481
  getSendJsonData
483
482
  );
484
483
  isCallBackFunc && getTypeCallBack(getSendJsonData);
485
484
  }
486
485
  break;
487
486
  case Message_Type.NATIVE_SHOW_DIALOG:
488
487
  const showDialogCallBack =
489
488
  Message_Trigger_CallBackFuncObj[
490
489
  Message_CallBack_Name.MESSAGE_HOME_INIT
491
490
  ][type];
492
491
  if (showDialogCallBack) {
493
492
  const isCallBackFunc = typeof showDialogCallBack === "function";
494
493
  console.log(
495
494
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
496
495
  type,
497
496
  isCallBackFunc,
498
497
  getMessageJsonData
499
498
  );
500
499
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data);
501
500
  }
502
501
  break;
503
502
  case Message_Type.NATIVE_PAGE_SCROLL:
504
503
  taroEventSendPageScrollInfo(data);
505
504
  break;
506
505
  case Message_Type.NATIVE_PAGE_SCROLL_END:
507
506
  taroEventSendPageScrollEndInfo(data);
508
507
  break;
509
508
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
510
509
  console.log("接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5", data);
511
510
  taroEventH5SendMsgToH5(getSendJsonData);
512
511
  break;
513
512
  case Message_Type.UPDATE_NATIVE_DATA:
514
513
  taroEventUpdateNativeData(getSendJsonData);
515
514
  break;
516
515
  case Message_Type.H5_TO_SCROLL_TOP:
517
516
  taroEventH5ToScrollTop();
518
517
  break;
519
518
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
520
519
  taroEventSendImmersionStatus(data);
521
520
  break;
522
521
  case Message_Type.NATIVE_SHOPSTOW_SEND:
523
522
  console.log("接收到原生通知 NATIVE_SHOPSTOW_SEND", messageData);
524
523
  console.log(
525
524
  "接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData",
526
525
  getSendJsonData
527
526
  );
528
527
  taroEventShopStowSend(getSendJsonData);
529
528
  break;
530
529
  default:
531
530
  }
532
531
  } else {
533
532
  console.log("传递数据获取异常", getMessageJsonData);
534
533
  }
535
534
  } catch (e) {
536
535
  console.log("获取转换异常结果", e);
537
536
  }
538
537
  };
539
538
  }
540
539
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
541
540
  data: params,
542
541
  });
543
542
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
544
543
  data: {
545
544
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
546
545
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
547
546
  ...params,
548
547
  },
549
548
  });
550
549
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
551
550
  data: {
552
551
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
553
552
  ...params,
554
553
  },
555
554
  });
556
555
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS);
557
556
  console.log("popWebview关闭");
558
557
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
559
558
  data: params,
560
559
  });
561
560
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
562
561
  data: params,
563
562
  });
564
563
  window &&
565
564
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`);
566
565
  res: UtilsInterFace.nativePageScrollRes
567
566
  const { displayHeight, offSetY } = res;
568
567
  if (typeof displayHeight === "undefined" || typeof offSetY === "undefined")
569
568
  return;
570
569
  if (isIosDevice) return res;
571
570
  if (isAndroidDevice) {
572
571
  const deviceRatio = window.devicePixelRatio;
573
572
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio);
574
573
  const cssOffsetY = Math.ceil(offSetY / deviceRatio);
575
574
  return {
576
575
  displayHeight: cssDisplayHeight,
577
576
  offSetY: cssOffsetY,
578
577
  };
579
578
  }
580
579
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
581
580
  data: params,
582
581
  });
583
582
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
584
583
  data: params,
585
584
  });
586
585
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
587
586
  data: params,
588
587
  });
589
588
  nativePageRegisterMessage(Message_Type.NATIVE_TO_SHOW_CART_BTN, {
590
589
  data: params,
591
590
  });
591
+ import Taro from '@tarojs/taro'
592
592
  isH5AndJdShopView,
593
593
  isJdApp,
594
594
  isIosDevice,
595
595
  isAndroidDevice,
596
596
  isJdAndIosDevice,
597
597
  isJdAndAndroidDevice,
598
598
  jdAppVersionCompare,
599
599
  isAppStowShop,
600
600
  (window.JDJshopViewInfo = {
601
601
  androidTouchSlop: 5,
602
602
  getAndroidTouchSlopState: false,
603
603
  })
604
604
  (state) => {
605
605
  console.log(
606
606
  'document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:',
607
607
  state,
608
608
  )
609
609
  Taro.eventCenter.trigger(
610
610
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
611
611
  state ? 0 : 1,
612
612
  )
613
613
  },
614
614
  1500,
615
615
  { leading: false, trailing: true },
616
616
  (state) => {
617
617
  console.log(
618
618
  'IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:',
619
619
  state,
620
620
  )
621
621
  Taro.eventCenter.trigger(
622
622
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
623
623
  state,
624
624
  )
625
625
  },
626
626
  1500,
627
627
  { leading: true, trailing: false },
628
628
  if (!isJdApp) {
629
629
  if (isH5) {
630
630
 
631
631
  const documentHandleVisibilityChange = () => {
632
632
  const state = document.hidden
633
633
  window.startDocumentVisibilityChange && documentThrottledTrigger(state)
634
634
  }
635
635
  document.removeEventListener(
636
636
  'visibilitychange',
637
637
  documentHandleVisibilityChange,
638
638
  )
639
639
  console.log('每次进入页面先清除浏览器visibilitychange监听事件')
640
640
  setTimeout(() => {
641
641
  document.addEventListener(
642
642
  'visibilitychange',
643
643
  documentHandleVisibilityChange,
644
644
  false,
645
645
  )
646
646
  window.startDocumentVisibilityChange = true
647
647
  }, 3000)
648
648
  }
649
649
  } else {
650
650
 
651
651
  !window.webviewVisible &&
652
652
  (window.webviewVisible = (state) => {
653
653
  window.startDocumentVisibilityChange && webviewThrottledTrigger(state)
654
654
  state === 1 && taroEventSendPageScrollInfo()
655
655
  })
656
656
  setTimeout(() => {
657
657
  window.startDocumentVisibilityChange = true
658
658
  }, 3000)
659
659
  !window.floatReceiveData && (window.floatReceiveData = () => {})
660
660
  }
661
661
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
662
662
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
663
663
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
664
664
  displayHeight: 1920,
665
665
  offSetY: 0,
666
666
  }
667
667
  if (options) {
668
668
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options
669
669
  }
670
670
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {}
671
671
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes)
672
672
  console.log('PageScrollEnd fire')
673
673
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options)
674
674
  const { businessType } = options
675
675
  switch (businessType) {
676
676
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
677
677
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options)
678
678
  break
679
679
  default:
680
680
  break
681
681
  }
682
682
  const { shopHomeExtendInfo } = options
683
683
  if (shopHomeExtendInfo) {
684
684
  Taro.eventCenter.trigger(
685
685
  TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA,
686
686
  shopHomeExtendInfo,
687
687
  )
688
688
  }
689
689
  window && window.scrollTo(0, 0)
690
690
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options)
691
691
  const { action, params } = options
692
692
  console.log('taroEventShopStowSend', options)
693
693
  if (action) {
694
694
  Taro.eventCenter.trigger(action, params)
695
695
  }
696
696
  NATIVE_PAGE_READ: 'pageReady',
697
697
  NATIVE_PAGE_FINISH: 'pageFinish',
698
698
  NATIVE_INFO_DATA: 'nativeInfoData',
699
699
  NATIVE_PAGE_SCROLL: 'pageScroll',
700
700
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
701
701
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
702
702
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
703
703
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
704
704
  NATIVE_MOBILE_CONFIG: 'getMobileConfig',
705
705
  NATIVE_SHOW_TOAST: 'showToast',
706
706
  NATIVE_SHOW_DIALOG: 'showDialog',
707
707
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
708
708
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
709
709
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
710
710
  NATIVE_ADD_CART: 'addCart',
711
711
  NATIVE_OPEN_FLOAT: 'openFloat',
712
712
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
713
713
  NAVTIVE_FLOAT_READY: 'floatReady',
714
714
  NATIVE_REFRESH_PAGE: 'refreshPage',
715
715
  PAGE_PV_PARAM: 'pagePvParam',
716
716
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
717
717
  NATIVE_POP_WEBVIEW: 'popWebview',
718
718
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
719
719
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
720
720
  UPDATE_NATIVE_DATA: 'updateNativeData',
721
721
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
722
722
  LUXURY_INFORM_CHANGE_HEIGHT: 'sendImmersionStatus',
723
723
  NATIVE_SHOPSTOW_SEND: 'sendMsgToShopStow',
724
724
  NATIVE_UPDATE_PAGE_INFO: 'pageCountInfo',
725
725
  NATIVE_TO_BUYER_SHOW_DETAIL: 'jumpBuyerShowDetail',
726
726
  NATIVE_TO_HIDE_JD_SHOP_HEADER: 'hideNativeHeader',
727
727
  NATIVE_TO_SHOW_CART_BTN: 'showCartButton',
728
728
  NATIVE_IMMERSIVEHEADER_STATE_CHANGE: 'immersiveHeaderStateChange',
729
729
  SHOP_FOLLOW_STATE_REGISTER: "shopFollowStateRegister",
730
730
  SHOP_FOLLOW_STATE_SYNC: "shopFollowStateSync",
731
731
  NATIVE_GET_SHOP_FOLLOW_STATE: "getShopFollowState",
732
732
  OPEN: 'open',
733
733
  CLOSE: 'close',
734
734
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
735
735
  type = Message_Type.NATIVE_PAGE_READ,
736
736
  sendData: null | object = null,
737
737
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
738
738
  console.log(
739
739
  '初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView',
740
740
  isAppStowShop,
741
741
  type,
742
742
  sendData,
743
743
  isJdApp,
744
744
  isH5AndJdShopView,
745
745
  callBackName,
746
746
  )
747
747
  if (isJdApp) {
748
748
  const getCallBackName = `window.${callBackName}`
749
749
  let getRouterParam = {
750
750
  type,
751
751
  callBackName: getCallBackName,
752
752
  }
753
753
  if (!isAppStowShop) {
754
754
  getRouterParam['newHomePage'] = true
755
755
  }
756
756
  if (sendData) {
757
757
  getRouterParam = Object.assign({}, getRouterParam, sendData)
758
758
  }
759
759
  if (isIosDevice) {
760
760
  const routerURL = isAppStowShop
761
761
  ? 'router://JDBDecorationPlatformModule/wrtNative'
762
762
  : 'router://JDShopModule/wrtNative'
763
763
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
764
764
  callRouterIOS({
765
765
  routerURL,
766
766
  routerParam: getRouterParam,
767
767
  })
768
768
  } else {
769
769
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
770
770
  method: 'callRouterModuleWithParams',
771
771
  params: {
772
772
  routerURL,
773
773
  serialize: "1",
774
774
  routerParam: JSON.stringify(getRouterParam),
775
775
  callBackName: getCallBackName,
776
776
  callBackId: `${callBackName}Ios`,
777
777
  },
778
778
  })
779
779
  }
780
780
  } else if (isAndroidDevice) {
781
781
  if(type === Message_Type.NATIVE_MOBILE_CONFIG && jdAppVersionCompare('13.2.8') >= 0){
782
782
  callRouterAndroid({
783
783
  routerURL: "router://JDJShopModule/wrtNative",
784
784
  routerParam: getRouterParam,
785
785
  })
786
786
  }else {
787
787
  window?.JDJshop?.wrtNative(
788
788
  JSON.stringify({
789
789
  routerParam: JSON.stringify(getRouterParam),
790
790
  serialize: "1",
791
791
  callBackName: getCallBackName,
792
792
  callBackId: `${callBackName}Android`,
793
793
  }),
794
794
  )
795
795
  }
796
796
  }
797
797
  return true
798
798
  }
799
799
  return false
800
800
  if (isJdApp) {
801
801
  if (isIosDevice) {
802
802
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
803
803
  method: 'close',
804
804
  })
805
805
  } else if (isAndroidDevice) {
806
806
  window?.XView && window?.XView.close()
807
807
  }
808
808
  }
809
809
  console.log('showToastByRouter:', title, showType)
810
810
  if (isJdApp) {
811
811
  const routerParam = {
812
812
  message: title,
813
813
  iconType: showType,
814
814
  duration,
815
815
  }
816
816
  if (isIosDevice) {
817
817
  callRouterIOS({
818
818
  routerURL: 'router://JDShopModule/showToast',
819
819
  routerParam,
820
820
  })
821
821
  } else if (isAndroidDevice) {
822
822
  callRouterAndroid({
823
823
  routerURL: 'router://JDJShopModule/showToast',
824
824
  routerParam,
825
825
  })
826
826
  }
827
827
  }
828
828
  console.log('nativePageLoadReady called')
829
829
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
830
830
  Message_Type.NATIVE_INFO_DATA
831
831
  ] = async (data: any) => {
832
832
  console.log('nativePageLoadReady callBack:', callBack, ', data:', data)
833
833
  callBack && callBack(data)
834
834
  }
835
835
  nativePageGetMessageInitCallBack()
836
836
  nativePageRegisterMessage(
837
837
  Message_Type.NATIVE_PAGE_READ,
838
838
  sendData,
839
839
  Message_CallBack_Name.MESSAGE_HOME_INIT,
840
840
  )
841
841
  return nativePageRegisterMessage(
842
842
  Message_Type.NATIVE_PAGE_FINISH,
843
843
  null,
844
844
  Message_CallBack_Name.MESSAGE_HOME_INIT,
845
845
  )
846
846
  callBack &&
847
847
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
848
848
  Message_Type.NATIVE_GET_SCROLL_TOP
849
849
  ] = callBack)
850
850
  return nativePageRegisterMessage(
851
851
  Message_Type.NATIVE_GET_SCROLL_TOP,
852
852
  null,
853
853
  Message_CallBack_Name.MESSAGE_HOME_INIT,
854
854
  )
855
855
  callBack &&
856
856
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
857
857
  Message_Type.NATIVE_TO_SCROLL_TOP
858
858
  ] = callBack)
859
859
  nativePageRegisterMessage(
860
860
  Message_Type.NATIVE_TO_SCROLL_TOP,
861
861
  {
862
862
  data: {
863
863
  scrollTop,
864
864
  },
865
865
  },
866
866
  Message_CallBack_Name.MESSAGE_HOME_INIT,
867
867
  )
868
868
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data)
869
869
  Taro.eventCenter.trigger(TaroEventType.SHOP_FOLLOW_STATE_REGISTER, data)
870
870
  Taro.eventCenter.trigger(TaroEventType.IMMERSIVEHEADER_STATE_CHANGE, data)
871
871
  configName: string,
872
872
  isBeforePageReady: boolean,
873
873
  return new Promise((resolve, reject) => {
874
874
  if (!isJdApp) {
875
875
  reject({
876
876
  code: -1,
877
877
  message: 'getMPaasConfigByNative 只在松果APP店铺内部调用有效。',
878
878
  })
879
879
  return
880
880
  }
881
881
  if (
882
882
  isIosDevice &&
883
883
  isBeforePageReady &&
884
884
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
885
885
  ) {
886
886
  reject({
887
887
  code: -2,
888
888
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
889
889
  })
890
890
  return
891
891
  }
892
892
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
893
893
  Message_Type.NATIVE_MOBILE_CONFIG
894
894
  ] = (data: any) => {
895
895
  const configData = isAndroidDevice ? data : data?.data
896
896
  const res = JSONParse(configData)
897
897
  resolve(res)
898
898
  }
899
899
  nativePageGetMessageInitCallBack()
900
900
  nativePageRegisterMessage(
901
901
  Message_Type.NATIVE_MOBILE_CONFIG,
902
902
  {
903
903
  data: {
904
904
  space: isIosDevice ? 'JDCDSHOP' : 'JDShop',
905
905
  configName,
906
906
  },
907
907
  },
908
908
  Message_CallBack_Name.MESSAGE_HOME_INIT,
909
909
  )
910
910
  })
911
911
  bussinessKey: string,
912
912
  isBeforePageReady: boolean,
913
913
  if (!bussinessKey) {
914
914
  return null
915
915
  }
916
916
  if (!isJdApp) {
917
917
  return null
918
918
  }
919
919
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`
920
920
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`
921
921
  let configData = window[CACHED_MPAAS_KEY]
922
922
  if (configData == null) {
923
923
  configData = await getMPaasConfigByNative(
924
924
  CONFIG_NAME,
925
925
  isBeforePageReady,
926
926
  ).catch((e) => {
927
927
  console.log('getMPaasConfigByNative error:', e)
928
928
  return null
929
929
  })
930
930
  window[CACHED_MPAAS_KEY_HELPER] = {}
931
931
  window[CACHED_MPAAS_KEY] = configData
932
932
  }
933
933
  if (configData) {
934
934
  const originData = configData[bussinessKey]
935
935
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey]
936
936
  try {
937
937
  if (
938
938
  hasParse ||
939
939
  ['object', 'boolean', 'number'].includes(typeof originData)
940
940
  ) {
941
941
  return originData
942
942
  } else {
943
943
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true
944
944
  const parseData = JSON.parse(configData[bussinessKey])
945
945
  configData[bussinessKey] = parseData
946
946
  return parseData
947
947
  }
948
948
  } catch (e) {
949
949
  return originData
950
950
  }
951
951
  }
952
952
  return null
953
953
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE)
954
954
  if (isJdAndAndroidDevice) {
955
955
  callBack &&
956
956
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
957
957
  Message_Type.NATIVE_HOME_PAGING_ENABLE
958
958
  ] = callBack)
959
959
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
960
960
  data: {
961
961
  enable: enable,
962
962
  },
963
963
  })
964
964
  }
965
965
  if (isJdAndAndroidDevice) {
966
966
  callBack &&
967
967
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
968
968
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
969
969
  ] = callBack)
970
970
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP)
971
971
  }
972
972
  SUCCESS: 'success',
973
973
  FAIL: 'fail',
974
974
  NORMAL: 'normal',
975
975
  SUCCESS: 2,
976
976
  FAIL: 3,
977
977
  NORMAL: 1,
978
978
  SUCCESS: 2,
979
979
  FAIL: 3,
980
980
  NORMAL: 1,
981
981
  [ToastIosType.NORMAL]: ToastType.NORMAL,
982
982
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
983
983
  [ToastIosType.FAIL]: ToastType.FAIL,
984
984
  if (isShowNewRouterToast) {
985
985
  const changeShowType = isJdAndIosDevice
986
986
  ? toastIosTypeToNewToastType[showType] || showType
987
987
  : showType
988
988
  showToastByRouter(title, changeShowType, duration * 1000)
989
989
  } else {
990
990
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
991
991
  data: {
992
992
  message: title,
993
993
  iconType: showType,
994
994
  duration,
995
995
  },
996
996
  })
997
997
  }
998
998
  routerURL,
999
999
  routerParam,
1000
1000
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
1001
1001
  const getCallBackName = `window.${callBackName}`
1002
1002
  const params = {
1003
1003
  routerURL,
1004
1004
  serialize: "1",
1005
1005
  routerParam,
1006
1006
  callBackName: getCallBackName,
1007
1007
  callBackId: `${callBackName}Ios`,
1008
1008
  }
1009
1009
  console.log(
1010
1010
  'callRouterIOS routerURL:',
1011
1011
  routerURL,
1012
1012
  ',routerParam:',
1013
1013
  routerParam,
1014
1014
  "params",
1015
1015
  params
1016
1016
  )
1017
1017
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
1018
1018
  method: 'callRouterModuleWithParams',
1019
1019
  params: JSON.stringify(params),
1020
1020
  })
1021
1021
  routerURL,
1022
1022
  routerParam,
1023
1023
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
1024
1024
  console.log(
1025
1025
  'callRouterAndroid routerURL:',
1026
1026
  routerURL,
1027
1027
  ',routerParam:',
1028
1028
  routerParam,
1029
1029
  )
1030
1030
  const getCallBackName = `window.${callBackName}`
1031
1031
  routerParam?.data && typeof routerParam?.data === 'object' && (routerParam.data = JSON.stringify(routerParam?.data))
1032
1032
  var params = {
1033
1033
  jdRouter: '1',
1034
1034
  serialize: "1",
1035
1035
  routerURL,
1036
1036
  routerParam,
1037
1037
  callBackName: getCallBackName,
1038
1038
  callBackId: `${callBackName}Android`,
1039
1039
  }
1040
1040
  console.log("=======获取安卓router协议参数=======", params)
1041
1041
  window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params))
1042
1042
  callBack &&
1043
1043
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1044
1044
  Message_Type.NATIVE_SHOW_DIALOG
1045
1045
  ] = callBack)
1046
1046
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
1047
1047
  data: params,
1048
1048
  })
1049
1049
  if (!isJdApp) {
1050
1050
  return
1051
1051
  }
1052
1052
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
1053
1053
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
1054
1054
  try {
1055
1055
  console.log('接收到原生通知返回的原始数据nativePageGetMessageInitCallBack', messageData)
1056
1056
  const getMessageJsonData = JSONParse(messageData)
1057
1057
  const { status } = getMessageJsonData
1058
1058
  if (status == '0') {
1059
1059
  const { type, data } = getMessageJsonData?.data
1060
1060
  const getSendJsonData = JSONParse(data)
1061
1061
  switch (type) {
1062
1062
  case Message_Type.NATIVE_INFO_DATA:
1063
1063
  case Message_Type.NATIVE_PAGE_FINISH:
1064
1064
  case Message_Type.NATIVE_GET_SCROLL_TOP:
1065
1065
  case Message_Type.NATIVE_TO_SCROLL_TOP:
1066
1066
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
1067
1067
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
1068
1068
  case Message_Type.NATIVE_MOBILE_CONFIG:
1069
1069
  case Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE:
1070
1070
  const getTypeCallBack =
1071
1071
  Message_Trigger_CallBackFuncObj[
1072
1072
  Message_CallBack_Name.MESSAGE_HOME_INIT
1073
1073
  ][type]
1074
1074
  if (getTypeCallBack) {
1075
1075
  const isCallBackFunc = typeof getTypeCallBack === 'function'
1076
1076
  console.log(
1077
1077
  '接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData',
1078
1078
  getSendJsonData,
1079
1079
  )
1080
1080
  isCallBackFunc && getTypeCallBack(getSendJsonData)
1081
1081
  }
1082
1082
  break
1083
1083
  case Message_Type.NATIVE_SHOW_DIALOG:
1084
1084
  const showDialogCallBack =
1085
1085
  Message_Trigger_CallBackFuncObj[
1086
1086
  Message_CallBack_Name.MESSAGE_HOME_INIT
1087
1087
  ][type]
1088
1088
  if (showDialogCallBack) {
1089
1089
  const isCallBackFunc = typeof showDialogCallBack === 'function'
1090
1090
  console.log(
1091
1091
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
1092
1092
  type,
1093
1093
  isCallBackFunc,
1094
1094
  getMessageJsonData,
1095
1095
  )
1096
1096
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data)
1097
1097
  }
1098
1098
  break
1099
1099
  case Message_Type.NATIVE_PAGE_SCROLL:
1100
1100
  taroEventSendPageScrollInfo(data)
1101
1101
  break
1102
1102
  case Message_Type.NATIVE_PAGE_SCROLL_END:
1103
1103
  taroEventSendPageScrollEndInfo(data)
1104
1104
  break
1105
1105
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
1106
1106
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data)
1107
1107
  taroEventH5SendMsgToH5(getSendJsonData)
1108
1108
  break
1109
1109
  case Message_Type.UPDATE_NATIVE_DATA:
1110
1110
  taroEventUpdateNativeData(getSendJsonData)
1111
1111
  break
1112
1112
  case Message_Type.H5_TO_SCROLL_TOP:
1113
1113
  taroEventH5ToScrollTop()
1114
1114
  break
1115
1115
  case Message_Type.NATIVE_SHOPSTOW_SEND:
1116
1116
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND', messageData)
1117
1117
  console.log(
1118
1118
  '接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData',
1119
1119
  getSendJsonData,
1120
1120
  )
1121
1121
  taroEventShopStowSend(getSendJsonData)
1122
1122
  break
1123
1123
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
1124
1124
  taroEventSendImmersionStatus(data)
1125
1125
  break
1126
1126
  case Message_Type.NATIVE_IMMERSIVEHEADER_STATE_CHANGE:
1127
1127
  taroEventSendImmersiveHeaderChange(data)
1128
1128
  break
1129
1129
  case Message_Type.SHOP_FOLLOW_STATE_REGISTER:
1130
1130
  taroEventSendShopFollowStateChange(data)
1131
1131
  break
1132
1132
  default:
1133
1133
  }
1134
1134
  } else {
1135
1135
  console.log('传递数据获取异常', getMessageJsonData)
1136
1136
  }
1137
1137
  } catch (e) {
1138
1138
  console.log('获取转换异常结果', e)
1139
1139
  }
1140
1140
  }
1141
1141
  }
1142
1142
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
1143
1143
  data: params,
1144
1144
  })
1145
1145
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1146
1146
  data: {
1147
1147
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
1148
1148
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
1149
1149
  ...params,
1150
1150
  },
1151
1151
  })
1152
1152
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1153
1153
  data: {
1154
1154
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
1155
1155
  ...params,
1156
1156
  },
1157
1157
  })
1158
1158
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS)
1159
1159
  console.log('popWebview关闭')
1160
1160
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
1161
1161
  data: params,
1162
1162
  })
1163
1163
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
1164
1164
  data: params,
1165
1165
  })
1166
1166
  window &&
1167
1167
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`)
1168
1168
  res: UtilsInterFace.nativePageScrollRes,
1169
1169
  const { displayHeight, offSetY } = res
1170
1170
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined')
1171
1171
  return
1172
1172
  if (isIosDevice) return res
1173
1173
  if (isAndroidDevice) {
1174
1174
  const deviceRatio = window.devicePixelRatio
1175
1175
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio)
1176
1176
  const cssOffsetY = Math.ceil(offSetY / deviceRatio)
1177
1177
  return {
1178
1178
  displayHeight: cssDisplayHeight,
1179
1179
  offSetY: cssOffsetY,
1180
1180
  }
1181
1181
  }
1182
1182
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
1183
1183
  data: params,
1184
1184
  })
1185
1185
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
1186
1186
  data: params,
1187
1187
  })
1188
1188
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
1189
1189
  data: params,
1190
1190
  })
1191
1191
  nativePageRegisterMessage(Message_Type.NATIVE_TO_SHOW_CART_BTN, {
1192
1192
  data: params,
1193
1193
  })
1194
1194
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_REGISTER, {
1195
1195
  data: params,
1196
1196
  })
1197
1197
  callBack &&
1198
1198
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1199
1199
  Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE
1200
1200
  ] = callBack)
1201
1201
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE, {
1202
1202
  data: {},
1203
1203
  })
1204
1204
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_SYNC, {
1205
1205
  data: {
1206
1206
  followed: followState,
1207
1207
  },
1208
1208
  })