@conecli/cone-render 0.9.1-shop2.4 → 0.9.1-shop2.40

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