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

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 (111) 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/jssdk.ts +1 -1
  9. package/dist/common/pageType.ts +1 -1
  10. package/dist/common/sgmCustomCode.ts +1 -1
  11. package/dist/common/token/index.h5.ts +1 -1
  12. package/dist/common/token/token.jd.ts +1 -1
  13. package/dist/common/wxappApi.ts +1 -1
  14. package/dist/components/ErrorBoundary.tsx +1 -1
  15. package/dist/components/base/CommonFloorHead/index.module.scss +126 -111
  16. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  17. package/dist/components/base/CountDown/index.module.scss +49 -44
  18. package/dist/components/base/CountDown/index.tsx +1 -1
  19. package/dist/components/base/CustomScrollView/index-back.tsx +1 -0
  20. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  21. package/dist/components/base/CustomVideo/common.ts +1 -0
  22. package/dist/components/base/CustomVideo/index.tsx +1 -1
  23. package/dist/components/base/Dialog/index.module.scss +11 -0
  24. package/dist/components/base/ExposureSmart/index.h5.module.scss +12 -2
  25. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  26. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  27. package/dist/components/base/InOrOutViewObserver/index.tsx +1 -1
  28. package/dist/components/base/InViewRender/index.tsx +1 -1
  29. package/dist/components/base/InViewRender/index.weapp.tsx +1 -1
  30. package/dist/components/base/ItemViewExposureSmart/index.module.scss +2 -2
  31. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  32. package/dist/components/base/LazyLayoutLoad/index.tsx +1 -1
  33. package/dist/components/base/LazyLayoutLoad/index.weapp.tsx +1 -1
  34. package/dist/components/base/LazyLoadImage/index.h5.module.scss +11 -3
  35. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  36. package/dist/components/base/LazyLoadImage/index.tsx +1 -1
  37. package/dist/components/base/MobileCommonHeader/index.tsx +1 -1
  38. package/dist/components/base/NetworkDataError/index.module.scss +3 -0
  39. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  40. package/dist/components/base/Price/Base/index.tsx +1 -1
  41. package/dist/components/base/Price/Double/index.module.scss +8 -0
  42. package/dist/components/base/Price/Double/index.tsx +1 -1
  43. package/dist/components/debug/DebugLayout/index.module.scss +2 -2
  44. package/dist/components/decorate/DecorateFloorModule/index.module.scss +11 -0
  45. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  46. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  47. package/dist/components/decorate/PlaceHolder/index.tsx +1 -1
  48. package/dist/components/floorItem.jd.tsx +1 -1
  49. package/dist/components/floorItem.tsx +1 -1
  50. package/dist/components/floorItem.weapp.tsx +1 -1
  51. package/dist/components/isv/Floor/index.tsx +1 -1
  52. package/dist/components/remoteFloorItem.tsx +1 -1
  53. package/dist/interface/common.ts +1 -1
  54. package/dist/interface/component.ts +1 -1
  55. package/dist/interface/jumpEventReport.ts +1 -1
  56. package/dist/interface/service.ts +1 -1
  57. package/dist/jumpEventReport/base.ts +1 -1
  58. package/dist/jumpEventReport/const.ts +1 -1
  59. package/dist/jumpEventReport/index.jd.ts +1 -1
  60. package/dist/jumpEventReport/index.weapp.ts +1 -1
  61. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  62. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  63. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  64. package/dist/jumpEventReport/web/report.ts +1 -1
  65. package/dist/jumpEventReport/web.base.ts +1 -1
  66. package/dist/jumpEventReport/web.jd.ts +1 -1
  67. package/dist/jumpEventReport/web.jdb.ts +1 -1
  68. package/dist/jumpEventReport/web.jdjch.ts +1 -1
  69. package/dist/jumpEventReport/web.jxwxapp.ts +1 -1
  70. package/dist/jumpEventReport/web.pc.ts +1 -1
  71. package/dist/jumpEventReport/web.tjapp.ts +1 -1
  72. package/dist/jumpEventReport/web.tjm.ts +1 -1
  73. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  74. package/dist/libs/taroAppReport.js +2 -2
  75. package/dist/modules/ContainerFloorList/index.h5.module.scss +66 -52
  76. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  77. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  78. package/dist/open/api/device.ts +1 -1
  79. package/dist/open/api/environment.ts +1 -1
  80. package/dist/open/api/request.ts +1 -1
  81. package/dist/open/api/shopMember.ts +1 -1
  82. package/dist/open/api/util.ts +1 -1
  83. package/dist/open/components/index.ts +1 -1
  84. package/dist/sass/app.h5.scss +275 -221
  85. package/dist/sass/base.scss +183 -137
  86. package/dist/service/fetchGateway.ts +1 -1
  87. package/dist/service/fetchGateway.weapp.ts +1 -0
  88. package/dist/service/http/colorSign.ts +1 -1
  89. package/dist/service/http/const.ts +1 -1
  90. package/dist/service/http/h5Http.ts +1 -0
  91. package/dist/service/http/index.h5.ts +1 -0
  92. package/dist/service/requestServer.h5.ts +1 -0
  93. package/dist/service/requestServer.ts +1 -1
  94. package/dist/service/requestServer.weapp.ts +1 -0
  95. package/dist/utils/connectNativeJsBridge.ts +1 -1
  96. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  97. package/dist/utils/h5Utils.ts +1 -1
  98. package/dist/utils/index.h5.ts +1 -1
  99. package/dist/utils/index.ts +1 -1
  100. package/dist/utils/index.weapp.ts +1 -1
  101. package/dist/utils/jumpExtMapUtil.h5.ts +1 -0
  102. package/dist/utils/jumpExtMapUtil.ts +1 -0
  103. package/dist/utils/log.ts +1 -0
  104. package/dist/utils/sColor.js +1 -0
  105. package/dist/utils/sgmCodeUtils.ts +1 -1
  106. package/dist/utils/taroRenderUtil.ts +1 -1
  107. package/dist/utils/utils.ts +1 -1
  108. package/dist/wxapp/common/address_api/address_api_v2.js +1 -0
  109. package/dist/wxapp/common/user_info.js +1 -1
  110. package/package.json +158 -135
  111. 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('document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
588
588
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state ? 0 : 1);
589
589
  },
590
590
  1500,
591
591
  { leading: false, trailing: true },
592
592
  (state) => {
593
593
  console.log('IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:', state);
594
594
  Taro.eventCenter.trigger(TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE, state);
595
595
  },
596
596
  1500,
597
597
  { leading: true, trailing: false },
598
598
  if (!isJdApp) {
599
599
  if (isH5) {
600
600
 
601
601
  const documentHandleVisibilityChange = () => {
602
602
  const state = document.hidden;
603
603
  window.startDocumentVisibilityChange && documentThrottledTrigger(state);
604
604
  };
605
605
  document.removeEventListener('visibilitychange', documentHandleVisibilityChange);
606
606
  console.log('每次进入页面先清除浏览器visibilitychange监听事件');
607
607
  setTimeout(() => {
608
608
  document.addEventListener('visibilitychange', documentHandleVisibilityChange, false);
609
609
  window.startDocumentVisibilityChange = true;
610
610
  }, 3000);
611
611
  }
612
612
  } else {
613
613
 
614
614
  !window.webviewVisible &&
615
615
  (window.webviewVisible = (state) => {
616
616
  window.startDocumentVisibilityChange && webviewThrottledTrigger(state);
617
617
  state === 1 && taroEventSendPageScrollInfo();
618
618
  });
619
619
  setTimeout(() => {
620
620
  window.startDocumentVisibilityChange = true;
621
621
  }, 3000);
622
622
  !window.floatReceiveData && (window.floatReceiveData = () => {});
623
623
  }
624
624
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
625
625
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
626
626
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
627
627
  displayHeight: 1920,
628
628
  offSetY: 0,
629
629
  };
630
630
  if (options) {
631
631
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options;
632
632
  }
633
633
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {};
634
634
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes);
635
635
  console.log('PageScrollEnd fire');
636
636
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options);
637
637
  const { businessType } = options;
638
638
  switch (businessType) {
639
639
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
640
640
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options);
641
641
  break;
642
642
  case H5_MSG_TO_H5_BUSINESSTYPE.h5BaseDataChange:
643
643
  Taro.eventCenter.trigger(TaroEventType.H5_BASE_DATA_CHANGE_REGISTER, options);
644
644
  break;
645
645
  default:
646
646
  break;
647
647
  }
648
648
  const { shopHomeExtendInfo } = options;
649
649
  if (shopHomeExtendInfo) {
650
650
  Taro.eventCenter.trigger(TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA, shopHomeExtendInfo);
651
651
  }
652
652
  window && window.scrollTo(0, 0);
653
653
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options);
654
654
  const { action, params } = options;
655
655
  console.log('taroEventShopStowSend', options);
656
656
  if (action) {
657
657
  Taro.eventCenter.trigger(action, params);
658
658
  }
659
659
  NATIVE_PAGE_READ: 'pageReady',
660
660
  NATIVE_PAGE_FINISH: 'pageFinish',
661
661
  NATIVE_INFO_DATA: 'nativeInfoData',
662
662
  NATIVE_PAGE_SCROLL: 'pageScroll',
663
663
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
664
664
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
665
665
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
666
666
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
667
667
  NATIVE_MOBILE_CONFIG: 'getMobileConfig',
668
668
  NATIVE_SHOW_TOAST: 'showToast',
669
669
  NATIVE_SHOW_DIALOG: 'showDialog',
670
670
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
671
671
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
672
672
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
673
673
  NATIVE_ADD_CART: 'addCart',
674
674
  NATIVE_OPEN_FLOAT: 'openFloat',
675
675
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
676
676
  NAVTIVE_FLOAT_READY: 'floatReady',
677
677
  NATIVE_REFRESH_PAGE: 'refreshPage',
678
678
  PAGE_PV_PARAM: 'pagePvParam',
679
679
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
680
680
  NATIVE_POP_WEBVIEW: 'popWebview',
681
681
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
682
682
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
683
683
  UPDATE_NATIVE_DATA: 'updateNativeData',
684
684
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
685
685
  LUXURY_INFORM_CHANGE_HEIGHT: 'sendImmersionStatus',
686
686
  NATIVE_SHOPSTOW_SEND: 'sendMsgToShopStow',
687
687
  NATIVE_UPDATE_PAGE_INFO: 'pageCountInfo',
688
688
  NATIVE_TO_BUYER_SHOW_DETAIL: 'jumpBuyerShowDetail',
689
689
  NATIVE_TO_HIDE_JD_SHOP_HEADER: 'hideNativeHeader',
690
690
  NATIVE_TO_SHOW_CART_BTN: 'showCartButton',
691
691
  NATIVE_IMMERSIVEHEADER_STATE_CHANGE: 'immersiveHeaderStateChange',
692
692
  SHOP_FOLLOW_STATE_REGISTER: 'shopFollowStateRegister',
693
693
  SHOP_FOLLOW_STATE_SYNC: 'shopFollowStateSync',
694
694
  NATIVE_GET_SHOP_FOLLOW_STATE: 'getShopFollowState',
695
695
  H5_TO_NATIVE_LIVE_RESERVE_STATE: 'shopLiveReserveStateSync',
696
696
  H5_TO_NATIVE_SCROLL_TO_TOP: 'expertShopScrollToTop',
697
697
  OPEN: 'open',
698
698
  CLOSE: 'close',
699
699
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
700
700
  h5BaseDataChange: 'h5BaseDataChange',
701
701
  type = Message_Type.NATIVE_PAGE_READ,
702
702
  sendData: null | object = null,
703
703
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
704
704
  console.log(
705
705
  '初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView',
706
706
  isAppStowShop,
707
707
  type,
708
708
  sendData,
709
709
  isJdApp,
710
710
  isH5AndJdShopView,
711
711
  callBackName,
712
712
  );
713
713
  if (isJdApp) {
714
714
  const getCallBackName = `window.${callBackName}`;
715
715
  let getRouterParam = {
716
716
  type,
717
717
  callBackName: getCallBackName,
718
718
  };
719
719
  if (!isAppStowShop) {
720
720
  getRouterParam['newHomePage'] = true;
721
721
  }
722
722
  if (sendData) {
723
723
  getRouterParam = Object.assign({}, getRouterParam, sendData);
724
724
  }
725
725
  if (isIosDevice) {
726
726
  const routerURL = isAppStowShop
727
727
  ? 'router://JDBDecorationPlatformModule/wrtNative'
728
728
  : 'router://JDShopModule/wrtNative';
729
729
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
730
730
  callRouterIOS({
731
731
  routerURL,
732
732
  routerParam: getRouterParam,
733
733
  });
734
734
  } else {
735
735
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
736
736
  method: 'callRouterModuleWithParams',
737
737
  params: {
738
738
  routerURL,
739
739
  serialize: '1',
740
740
  routerParam: JSON.stringify(getRouterParam),
741
741
  callBackName: getCallBackName,
742
742
  callBackId: `${callBackName}Ios`,
743
743
  },
744
744
  });
745
745
  }
746
746
  } else if (isAndroidDevice) {
747
747
  if (type === Message_Type.NATIVE_MOBILE_CONFIG && jdAppVersionCompare('13.2.8') >= 0) {
748
748
  callRouterAndroid({
749
749
  routerURL: 'router://JDJShopModule/wrtNative',
750
750
  routerParam: getRouterParam,
751
751
  });
752
752
  } else {
753
753
  window?.JDJshop?.wrtNative(
754
754
  JSON.stringify({
755
755
  routerParam: JSON.stringify(getRouterParam),
756
756
  serialize: '1',
757
757
  callBackName: getCallBackName,
758
758
  callBackId: `${callBackName}Android`,
759
759
  }),
760
760
  );
761
761
  }
762
762
  }
763
763
  return true;
764
764
  }
765
765
  return false;
766
766
  if (isJdApp) {
767
767
  if (isIosDevice) {
768
768
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
769
769
  method: 'close',
770
770
  });
771
771
  } else if (isAndroidDevice) {
772
772
  window?.XView && window?.XView.close();
773
773
  }
774
774
  }
775
775
  console.log('showToastByRouter:', title, showType);
776
776
  if (isJdApp) {
777
777
  const routerParam = {
778
778
  message: title,
779
779
  iconType: showType,
780
780
  duration,
781
781
  };
782
782
  if (isIosDevice) {
783
783
  callRouterIOS({
784
784
  routerURL: 'router://JDShopModule/showToast',
785
785
  routerParam,
786
786
  });
787
787
  } else if (isAndroidDevice) {
788
788
  callRouterAndroid({
789
789
  routerURL: 'router://JDJShopModule/showToast',
790
790
  routerParam,
791
791
  });
792
792
  }
793
793
  }
794
794
  console.log('nativePageLoadReady called');
795
795
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
796
796
  Message_Type.NATIVE_INFO_DATA
797
797
  ] = async (data: any) => {
798
798
  console.log('nativePageLoadReady callBack:', callBack, ', data:', data);
799
799
  callBack && callBack(data);
800
800
  };
801
801
  nativePageGetMessageInitCallBack();
802
802
  nativePageRegisterMessage(
803
803
  Message_Type.NATIVE_PAGE_READ,
804
804
  sendData,
805
805
  Message_CallBack_Name.MESSAGE_HOME_INIT,
806
806
  );
807
807
  return nativePageRegisterMessage(
808
808
  Message_Type.NATIVE_PAGE_FINISH,
809
809
  null,
810
810
  Message_CallBack_Name.MESSAGE_HOME_INIT,
811
811
  );
812
812
  callBack &&
813
813
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
814
814
  Message_Type.NATIVE_GET_SCROLL_TOP
815
815
  ] = callBack);
816
816
  return nativePageRegisterMessage(
817
817
  Message_Type.NATIVE_GET_SCROLL_TOP,
818
818
  null,
819
819
  Message_CallBack_Name.MESSAGE_HOME_INIT,
820
820
  );
821
821
  callBack &&
822
822
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
823
823
  Message_Type.NATIVE_TO_SCROLL_TOP
824
824
  ] = callBack);
825
825
  nativePageRegisterMessage(
826
826
  Message_Type.NATIVE_TO_SCROLL_TOP,
827
827
  {
828
828
  data: {
829
829
  scrollTop,
830
830
  },
831
831
  },
832
832
  Message_CallBack_Name.MESSAGE_HOME_INIT,
833
833
  );
834
834
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data);
835
835
  Taro.eventCenter.trigger(TaroEventType.SHOP_FOLLOW_STATE_REGISTER, data);
836
836
  Taro.eventCenter.trigger(TaroEventType.IMMERSIVEHEADER_STATE_CHANGE, data);
837
837
  configName: string,
838
838
  isBeforePageReady: boolean,
839
839
  return new Promise((resolve, reject) => {
840
840
  if (!isJdApp) {
841
841
  reject({
842
842
  code: -1,
843
843
  message: 'getMPaasConfigByNative 只在松果APP店铺内部调用有效。',
844
844
  });
845
845
  return;
846
846
  }
847
847
  if (
848
848
  isIosDevice &&
849
849
  isBeforePageReady &&
850
850
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
851
851
  ) {
852
852
  reject({
853
853
  code: -2,
854
854
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
855
855
  });
856
856
  return;
857
857
  }
858
858
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
859
859
  Message_Type.NATIVE_MOBILE_CONFIG
860
860
  ] = (data: any) => {
861
861
  const configData = isAndroidDevice ? data : data?.data;
862
862
  const res = JSONParse(configData);
863
863
  resolve(res);
864
864
  };
865
865
  nativePageGetMessageInitCallBack();
866
866
  nativePageRegisterMessage(
867
867
  Message_Type.NATIVE_MOBILE_CONFIG,
868
868
  {
869
869
  data: {
870
870
  space: isIosDevice ? 'JDCDSHOP' : 'JDShop',
871
871
  configName,
872
872
  },
873
873
  },
874
874
  Message_CallBack_Name.MESSAGE_HOME_INIT,
875
875
  );
876
876
  });
877
877
  bussinessKey: string,
878
878
  isBeforePageReady: boolean,
879
879
  if (!bussinessKey) {
880
880
  return null;
881
881
  }
882
882
  if (!isJdApp) {
883
883
  return null;
884
884
  }
885
885
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`;
886
886
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`;
887
887
  let configData = window[CACHED_MPAAS_KEY];
888
888
  if (configData == null) {
889
889
  configData = await getMPaasConfigByNative(CONFIG_NAME, isBeforePageReady).catch((e) => {
890
890
  console.log('getMPaasConfigByNative error:', e);
891
891
  return null;
892
892
  });
893
893
  window[CACHED_MPAAS_KEY_HELPER] = {};
894
894
  window[CACHED_MPAAS_KEY] = configData;
895
895
  }
896
896
  if (configData) {
897
897
  const originData = configData[bussinessKey];
898
898
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey];
899
899
  try {
900
900
  if (hasParse || ['object', 'boolean', 'number'].includes(typeof originData)) {
901
901
  return originData;
902
902
  } else {
903
903
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true;
904
904
  const parseData = JSON.parse(configData[bussinessKey]);
905
905
  configData[bussinessKey] = parseData;
906
906
  return parseData;
907
907
  }
908
908
  } catch (e) {
909
909
  return originData;
910
910
  }
911
911
  }
912
912
  return null;
913
913
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE);
914
914
  if (isJdAndAndroidDevice) {
915
915
  callBack &&
916
916
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
917
917
  Message_Type.NATIVE_HOME_PAGING_ENABLE
918
918
  ] = callBack);
919
919
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
920
920
  data: {
921
921
  enable: enable,
922
922
  },
923
923
  });
924
924
  }
925
925
  if (isJdAndAndroidDevice) {
926
926
  callBack &&
927
927
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
928
928
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
929
929
  ] = callBack);
930
930
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP);
931
931
  }
932
932
  SUCCESS: 'success',
933
933
  FAIL: 'fail',
934
934
  NORMAL: 'normal',
935
935
  SUCCESS: 2,
936
936
  FAIL: 3,
937
937
  NORMAL: 1,
938
938
  SUCCESS: 2,
939
939
  FAIL: 3,
940
940
  NORMAL: 1,
941
941
  [ToastIosType.NORMAL]: ToastType.NORMAL,
942
942
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
943
943
  [ToastIosType.FAIL]: ToastType.FAIL,
944
944
  if (isShowNewRouterToast) {
945
945
  const changeShowType = isJdAndIosDevice
946
946
  ? toastIosTypeToNewToastType[showType] || showType
947
947
  : showType;
948
948
  showToastByRouter(title, changeShowType, duration * 1000);
949
949
  } else {
950
950
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
951
951
  data: {
952
952
  message: title,
953
953
  iconType: showType,
954
954
  duration,
955
955
  },
956
956
  });
957
957
  }
958
958
  routerURL,
959
959
  routerParam,
960
960
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
961
961
  isSync = false,
962
962
  const getCallBackName = `window.${callBackName}`;
963
963
  const params = {
964
964
  routerURL,
965
965
  serialize: '1',
966
966
  routerParam,
967
967
  callBackName: getCallBackName,
968
968
  callBackId: `${callBackName}Ios`,
969
969
  };
970
970
  console.log(
971
971
  'callRouterIOS routerURL:',
972
972
  routerURL,
973
973
  ',routerParam:',
974
974
  routerParam,
975
975
  'params',
976
976
  params,
977
977
  'isSync',
978
978
  isSync,
979
979
  );
980
980
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
981
981
  method: isSync ? 'callSyncRouterModuleWithParams' : 'callRouterModuleWithParams',
982
982
  params: JSON.stringify(params),
983
983
  });
984
984
  routerURL,
985
985
  routerParam,
986
986
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
987
987
  isSync = false,
988
988
  hasJdRouter = true,
989
989
  console.log(
990
990
  'callRouterAndroid routerURL:',
991
991
  routerURL,
992
992
  ',routerParam:',
993
993
  routerParam,
994
994
  'isSync',
995
995
  isSync,
996
996
  );
997
997
  const getCallBackName = `window.${callBackName}`;
998
998
  routerParam?.data &&
999
999
  typeof routerParam?.data === 'object' &&
1000
1000
  (routerParam.data = JSON.stringify(routerParam?.data));
1001
1001
  var params = {
1002
1002
  serialize: '1',
1003
1003
  routerURL,
1004
1004
  routerParam,
1005
1005
  callBackName: getCallBackName,
1006
1006
  callBackId: `${callBackName}Android`,
1007
1007
  };
1008
1008
  hasJdRouter && (params['jdRouter'] = '1');
1009
1009
  isSync
1010
1010
  ? window?.JDAppUnite?.callSyncRouterModuleWithParams(JSON.stringify(params))
1011
1011
  : window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params));
1012
1012
  callBack &&
1013
1013
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1014
1014
  Message_Type.NATIVE_SHOW_DIALOG
1015
1015
  ] = callBack);
1016
1016
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
1017
1017
  data: params,
1018
1018
  });
1019
1019
  if (!isJdApp) {
1020
1020
  return;
1021
1021
  }
1022
1022
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
1023
1023
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
1024
1024
  try {
1025
1025
  console.log('接收到原生通知返回的原始数据nativePageGetMessageInitCallBack', messageData);
1026
1026
  const getMessageJsonData = JSONParse(messageData);
1027
1027
  const { status } = getMessageJsonData;
1028
1028
  if (status == '0') {
1029
1029
  const { type, data } = getMessageJsonData?.data;
1030
1030
  const getSendJsonData = JSONParse(data);
1031
1031
  switch (type) {
1032
1032
  case Message_Type.NATIVE_INFO_DATA:
1033
1033
  case Message_Type.NATIVE_PAGE_FINISH:
1034
1034
  case Message_Type.NATIVE_GET_SCROLL_TOP:
1035
1035
  case Message_Type.NATIVE_TO_SCROLL_TOP:
1036
1036
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
1037
1037
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
1038
1038
  case Message_Type.NATIVE_MOBILE_CONFIG:
1039
1039
  case Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE:
1040
1040
  const getTypeCallBack =
1041
1041
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
1042
1042
  if (getTypeCallBack) {
1043
1043
  const isCallBackFunc = typeof getTypeCallBack === 'function';
1044
1044
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
1045
1045
  isCallBackFunc && getTypeCallBack(getSendJsonData);
1046
1046
  }
1047
1047
  break;
1048
1048
  case Message_Type.NATIVE_SHOW_DIALOG:
1049
1049
  const showDialogCallBack =
1050
1050
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][type];
1051
1051
  if (showDialogCallBack) {
1052
1052
  const isCallBackFunc = typeof showDialogCallBack === 'function';
1053
1053
  console.log(
1054
1054
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
1055
1055
  type,
1056
1056
  isCallBackFunc,
1057
1057
  getMessageJsonData,
1058
1058
  );
1059
1059
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data);
1060
1060
  }
1061
1061
  break;
1062
1062
  case Message_Type.NATIVE_PAGE_SCROLL:
1063
1063
  taroEventSendPageScrollInfo(data);
1064
1064
  break;
1065
1065
  case Message_Type.NATIVE_PAGE_SCROLL_END:
1066
1066
  taroEventSendPageScrollEndInfo(data);
1067
1067
  break;
1068
1068
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
1069
1069
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data);
1070
1070
  taroEventH5SendMsgToH5(getSendJsonData);
1071
1071
  break;
1072
1072
  case Message_Type.UPDATE_NATIVE_DATA:
1073
1073
  taroEventUpdateNativeData(getSendJsonData);
1074
1074
  break;
1075
1075
  case Message_Type.H5_TO_SCROLL_TOP:
1076
1076
  taroEventH5ToScrollTop();
1077
1077
  break;
1078
1078
  case Message_Type.NATIVE_SHOPSTOW_SEND:
1079
1079
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND', messageData);
1080
1080
  console.log('接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData', getSendJsonData);
1081
1081
  taroEventShopStowSend(getSendJsonData);
1082
1082
  break;
1083
1083
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
1084
1084
  taroEventSendImmersionStatus(data);
1085
1085
  break;
1086
1086
  case Message_Type.NATIVE_IMMERSIVEHEADER_STATE_CHANGE:
1087
1087
  taroEventSendImmersiveHeaderChange(data);
1088
1088
  break;
1089
1089
  case Message_Type.SHOP_FOLLOW_STATE_REGISTER:
1090
1090
  taroEventSendShopFollowStateChange(data);
1091
1091
  break;
1092
1092
  default:
1093
1093
  }
1094
1094
  } else {
1095
1095
  console.log('传递数据获取异常', getMessageJsonData);
1096
1096
  }
1097
1097
  } catch (e) {
1098
1098
  console.log('获取转换异常结果', e);
1099
1099
  }
1100
1100
  };
1101
1101
  }
1102
1102
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
1103
1103
  data: params,
1104
1104
  });
1105
1105
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1106
1106
  data: {
1107
1107
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
1108
1108
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
1109
1109
  ...params,
1110
1110
  },
1111
1111
  });
1112
1112
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1113
1113
  data: {
1114
1114
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
1115
1115
  ...params,
1116
1116
  },
1117
1117
  });
1118
1118
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS);
1119
1119
  console.log('popWebview关闭');
1120
1120
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
1121
1121
  data: params,
1122
1122
  });
1123
1123
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
1124
1124
  data: params,
1125
1125
  });
1126
1126
  window &&
1127
1127
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`);
1128
1128
  const { displayHeight, offSetY } = res;
1129
1129
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined') return;
1130
1130
  if (isIosDevice) return res;
1131
1131
  if (isAndroidDevice) {
1132
1132
  const deviceRatio = window.devicePixelRatio;
1133
1133
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio);
1134
1134
  const cssOffsetY = Math.ceil(offSetY / deviceRatio);
1135
1135
  return {
1136
1136
  displayHeight: cssDisplayHeight,
1137
1137
  offSetY: cssOffsetY,
1138
1138
  };
1139
1139
  }
1140
1140
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
1141
1141
  data: params,
1142
1142
  });
1143
1143
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
1144
1144
  data: params,
1145
1145
  });
1146
1146
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
1147
1147
  data: params,
1148
1148
  });
1149
1149
  nativePageRegisterMessage(Message_Type.NATIVE_TO_SHOW_CART_BTN, {
1150
1150
  data: params,
1151
1151
  });
1152
1152
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_REGISTER, {
1153
1153
  data: params,
1154
1154
  });
1155
1155
  callBack &&
1156
1156
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
1157
1157
  Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE
1158
1158
  ] = callBack);
1159
1159
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SHOP_FOLLOW_STATE, {
1160
1160
  data: {},
1161
1161
  });
1162
1162
  nativePageRegisterMessage(Message_Type.SHOP_FOLLOW_STATE_SYNC, {
1163
1163
  data: {
1164
1164
  followed: followState,
1165
1165
  },
1166
1166
  });
1167
1167
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_LIVE_RESERVE_STATE, {
1168
1168
  data: params,
1169
1169
  });
1170
1170
  Taro.eventCenter.on('SEND_MSG_TO_NATIVE', (key, params) => {
1171
1171
  nativePageRegisterMessage(key, {
1172
1172
  data: params,
1173
1173
  });
1174
1174
  });
1175
1175
  nativePageRegisterMessage(Message_Type.H5_TO_NATIVE_SCROLL_TO_TOP, {
1176
1176
  data: params,
1177
1177
  });