@conecli/cone-render 0.10.1-isv2.1 → 0.10.1-isv2.2

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