@conecli/cone-render 0.9.1-shop2.3 → 0.9.1-shop2.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 (60) hide show
  1. package/dist/common/const.ts +1 -1
  2. package/dist/common/index.h5.ts +1 -1
  3. package/dist/common/index.jd.ts +1 -1
  4. package/dist/common/index.ts +1 -1
  5. package/dist/common/index.weapp.ts +1 -1
  6. package/dist/common/jssdk.ts +1 -0
  7. package/dist/common/pageType.ts +1 -0
  8. package/dist/common/token/index.h5.ts +1 -1
  9. package/dist/common/token/token.jd.ts +1 -1
  10. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  11. package/dist/components/base/Exposure/index.h5.tsx +1 -1
  12. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  13. package/dist/components/base/ExposureSmart/index.tsx +1 -1
  14. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  15. package/dist/components/base/InViewRender/index.tsx +1 -1
  16. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  17. package/dist/components/base/LazyLoadImage/const.ts +1 -1
  18. package/dist/components/base/LazyLoadImage/index.h5.tsx +1 -1
  19. package/dist/components/base/MobileCommonHeader/index.module.scss +9 -0
  20. package/dist/components/base/MobileCommonHeader/index.tsx +1 -0
  21. package/dist/components/base/NetworkDataError/const.ts +1 -1
  22. package/dist/components/base/NetworkDataError/index.module.scss +4 -0
  23. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  24. package/dist/components/base/Price/Double/index.tsx +1 -1
  25. package/dist/components/base/Price/index.tsx +1 -1
  26. package/dist/components/decorate/DecorateFloorModule/index.module.scss +21 -2
  27. package/dist/components/decorate/DecorateFloorModule/index.tsx +1 -1
  28. package/dist/components/decorate/EmptyFloorModule/index.tsx +1 -1
  29. package/dist/components/isv/Floor/index.tsx +1 -1
  30. package/dist/components/remoteFloorItem.tsx +1 -1
  31. package/dist/interface/common.ts +1 -1
  32. package/dist/interface/component.ts +1 -1
  33. package/dist/jumpEventReport/const.ts +1 -1
  34. package/dist/jumpEventReport/createReportFloorData.ts +1 -1
  35. package/dist/jumpEventReport/index.weapp.ts +1 -1
  36. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  37. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  38. package/dist/jumpEventReport/web/report.ts +1 -1
  39. package/dist/jumpEventReport/web.base.ts +1 -1
  40. package/dist/jumpEventReport/web.jd.ts +1 -1
  41. package/dist/jumpEventReport/web.jdb.ts +1 -1
  42. package/dist/jumpEventReport/web.jdjch.ts +1 -1
  43. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  44. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  45. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  46. package/dist/open/api/environment.ts +1 -1
  47. package/dist/open/api/index.ts +1 -1
  48. package/dist/open/api/track.ts +1 -1
  49. package/dist/open/components/index.ts +1 -1
  50. package/dist/service/fetchGateway.ts +1 -1
  51. package/dist/service/http/const.ts +1 -1
  52. package/dist/service/requestServer.ts +1 -1
  53. package/dist/utils/connectNativeJsBridge.ts +1 -1
  54. package/dist/utils/connectNativeJsBridge.weapp.ts +1 -1
  55. package/dist/utils/h5Utils.ts +1 -1
  56. package/dist/utils/index.h5.ts +1 -1
  57. package/dist/utils/index.ts +1 -1
  58. package/dist/utils/index.weapp.ts +1 -1
  59. package/dist/utils/utils.ts +1 -1
  60. package/package.json +1 -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
  if (!isJdApp) {
12
11
  if (isH5) {
13
12
 
14
13
  const documentHandleVisibilityChange = () => {
15
14
  const state = document.hidden
16
15
  console.log(
17
16
  '浏览器document.hidden状态,是否可以开始下发window.startDocumentVisibilityChange,可见性下发同步1-可见,0-不可见',
18
17
  state,
19
18
  window.startDocumentVisibilityChange,
20
19
  state ? 0 : 1,
21
20
  )
22
21
  window.startDocumentVisibilityChange &&
23
22
  Taro.eventCenter.trigger(
24
23
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
25
24
  state ? 0 : 1,
26
25
  )
27
26
  }
28
27
  document.removeEventListener(
29
28
  'visibilitychange',
30
29
  documentHandleVisibilityChange,
31
30
  )
32
31
  console.log('每次进入页面先清除浏览器visibilitychange监听事件')
33
32
  setTimeout(() => {
34
33
  document.addEventListener(
35
34
  'visibilitychange',
36
35
  documentHandleVisibilityChange,
37
36
  false,
38
37
  )
39
38
  window.startDocumentVisibilityChange = true
40
39
  }, 3000)
41
40
  }
42
41
  } else {
43
42
 
44
43
  !window.webviewVisible &&
45
44
  (window.webviewVisible = (state) => {
46
45
  console.log(
47
46
  'IOS Android 获取原生可见性下发,是否可以开始下发window.startDocumentVisibilityChange,1-可见,0-不可见',
48
47
  window.startDocumentVisibilityChange,
49
48
  state,
50
49
  )
51
50
  window.startDocumentVisibilityChange &&
52
51
  Taro.eventCenter.trigger(
53
52
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
54
53
  state,
55
54
  )
56
55
  state === 1 && taroEventSendPageScrollInfo()
57
56
  })
58
57
  setTimeout(() => {
59
58
  window.startDocumentVisibilityChange = true
60
59
  }, 3000)
61
60
  !window.floatReceiveData && (window.floatReceiveData = () => {})
62
61
  }
63
62
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
64
63
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
65
64
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
66
65
  displayHeight: 1920,
67
66
  offSetY: 0,
68
67
  }
69
68
  console.log(
70
69
  '>>>>>>>>>>>>>>>>>>> render taroEventSendPageScrollInfo origin time:',
71
70
  Date.now(),
72
71
  'res:',
73
72
  options,
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
  NATIVE_PAGE_READ: 'pageReady',
100
99
  NATIVE_PAGE_FINISH: 'pageFinish',
101
100
  NATIVE_INFO_DATA: 'nativeInfoData',
102
101
  NATIVE_PAGE_SCROLL: 'pageScroll',
103
102
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
104
103
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
105
104
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
106
105
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
107
106
  NATIVE_SHOW_TOAST: 'showToast',
108
107
  NATIVE_SHOW_DIALOG: 'showDialog',
109
108
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
110
109
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
111
110
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
112
111
  NATIVE_ADD_CART: 'addCart',
113
112
  NATIVE_OPEN_FLOAT: 'openFloat',
114
113
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
115
114
  NAVTIVE_FLOAT_READY: 'floatReady',
116
115
  NATIVE_REFRESH_PAGE: 'refreshPage',
117
116
  PAGE_PV_PARAM: 'pagePvParam',
118
117
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
119
118
  NATIVE_POP_WEBVIEW: 'popWebview',
120
119
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
121
120
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
122
121
  UPDATE_NATIVE_DATA: 'updateNativeData',
123
122
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
124
123
  OPEN: 'open',
125
124
  CLOSE: 'close',
126
125
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
127
126
  type = Message_Type.NATIVE_PAGE_READ,
128
127
  sendData: null | object = null,
129
128
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
130
129
  console.log(
131
130
  '初始化nativePageRegisterMessage-type-sendData-isJdApp-isH5AndJdShopView',
132
131
  type,
133
132
  sendData,
134
133
  isJdApp,
135
134
  isH5AndJdShopView,
136
135
  )
137
136
  if (isJdApp && isH5AndJdShopView) {
138
137
  const getCallBackName = `window.${callBackName}`
139
138
  let getRouterParam = {
140
139
  type,
141
140
  callBackName: getCallBackName,
142
141
  newHomePage: true,
143
142
  }
144
143
  if (sendData) {
145
144
  getRouterParam = Object.assign({}, getRouterParam, sendData)
146
145
  }
147
146
  isIosDevice &&
148
147
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
149
148
  method: 'callRouterModuleWithParams',
150
149
  params: {
151
150
  routerURL: 'router://JDShopModule/wrtNative',
152
151
  routerParam: JSON.stringify(getRouterParam),
153
152
  callBackName: getCallBackName,
154
153
  callBackId: `${callBackName}Ios`,
155
154
  },
156
155
  })
157
156
  isAndroidDevice &&
158
157
  window?.JDJshop?.wrtNative(
159
158
  JSON.stringify({
160
159
  routerParam: JSON.stringify(getRouterParam),
161
160
  callBackName: getCallBackName,
162
161
  callBackId: `${callBackName}Android`,
163
162
  }),
164
163
  )
165
164
  return true
166
165
  }
167
166
  return false
168
167
  console.log(
169
168
  'closeXView, isJdApp:',
170
169
  isJdApp,
171
170
  ',isH5AndJdShopView:',
172
171
  isH5AndJdShopView,
173
172
  ',isIosDevice:',
174
173
  isIosDevice,
175
174
  ',isAndroidDevice:',
176
175
  isAndroidDevice,
177
176
  )
178
177
  if (isJdApp && isH5AndJdShopView) {
179
178
  if (isIosDevice) {
180
179
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
181
180
  method: 'close',
182
181
  })
183
182
  } else if (isAndroidDevice) {
184
183
  window?.XView && window?.XView.close()
185
184
  }
186
185
  }
187
186
  callBack &&
188
187
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
189
188
  Message_Type.NATIVE_INFO_DATA
190
189
  ] = callBack)
191
190
  console.log(`nativePageLoadReady:${JSON.stringify(sendData)}`)
192
191
  nativePageRegisterMessage(
193
192
  Message_Type.NATIVE_PAGE_READ,
194
193
  sendData,
195
194
  Message_CallBack_Name.MESSAGE_HOME_INIT,
196
195
  )
197
196
  console.log('通信原始数据', sendData)
198
197
  return nativePageGetMessageInitCallBack()
199
198
  return nativePageRegisterMessage(
200
199
  Message_Type.NATIVE_PAGE_FINISH,
201
200
  null,
202
201
  Message_CallBack_Name.MESSAGE_HOME_INIT,
203
202
  )
204
203
  callBack &&
205
204
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
206
205
  Message_Type.NATIVE_GET_SCROLL_TOP
207
206
  ] = callBack)
208
207
  return nativePageRegisterMessage(
209
208
  Message_Type.NATIVE_GET_SCROLL_TOP,
210
209
  null,
211
210
  Message_CallBack_Name.MESSAGE_HOME_INIT,
212
211
  )
213
212
  callBack &&
214
213
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
215
214
  Message_Type.NATIVE_TO_SCROLL_TOP
216
215
  ] = callBack)
217
216
  nativePageRegisterMessage(
218
217
  Message_Type.NATIVE_TO_SCROLL_TOP,
219
218
  {
220
219
  data: {
221
220
  scrollTop,
222
221
  },
223
222
  },
224
223
  Message_CallBack_Name.MESSAGE_HOME_INIT,
225
224
  )
226
225
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE)
227
226
  if (isJdAndAndroidDevice) {
228
227
  callBack &&
229
228
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
230
229
  Message_Type.NATIVE_HOME_PAGING_ENABLE
231
230
  ] = callBack)
232
231
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
233
232
  data: {
234
233
  enable: enable,
235
234
  },
236
235
  })
237
236
  }
238
237
  if (isJdAndAndroidDevice) {
239
238
  callBack &&
240
239
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
241
240
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
242
241
  ] = callBack)
243
242
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP)
244
243
  }
245
244
  SUCCESS: 'success',
246
245
  FAIL: 'fail',
247
246
  NORMAL: 'normal',
248
247
  SUCCESS: 2,
249
248
  FAIL: 3,
250
249
  NORMAL: 1,
251
250
  SUCCESS: 2,
252
251
  FAIL: 3,
253
252
  NORMAL: 1,
254
253
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
255
254
  data: {
256
255
  message: title,
257
256
  iconType: showType,
258
257
  duration,
259
258
  },
260
259
  })
261
260
  console.log('showToastByRouter:', title, showType)
262
261
  if (isJdApp && isH5AndJdShopView) {
263
262
  const routerParam = {
264
263
  message: title,
265
264
  iconType: showType,
266
265
  duration,
267
266
  }
268
267
  if (isIosDevice) {
269
268
  callRouterIOS({
270
269
  routerURL: 'router://JDShopModule/showToast',
271
270
  routerParam,
272
271
  })
273
272
  } else if (isAndroidDevice) {
274
273
  callRouterAndroid({
275
274
  routerURL: 'router://JDJShopModule/showToast',
276
275
  routerParam,
277
276
  })
278
277
  }
279
278
  }
280
279
  routerURL,
281
280
  routerParam,
282
281
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
283
282
  console.log(
284
283
  'callRouterIOS routerURL:',
285
284
  routerURL,
286
285
  ',routerParam:',
287
286
  routerParam,
288
287
  )
289
288
  const getCallBackName = `window.${callBackName}`
290
289
  const params = {
291
290
  routerURL,
292
291
  routerParam,
293
292
  callBackName: getCallBackName,
294
293
  callBackId: `${callBackName}Ios`,
295
294
  }
296
295
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
297
296
  method: 'callRouterModuleWithParams',
298
297
  params: JSON.stringify(params),
299
298
  })
300
299
  routerURL,
301
300
  routerParam,
302
301
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
303
302
  console.log(
304
303
  'callRouterAndroid routerURL:',
305
304
  routerURL,
306
305
  ',routerParam:',
307
306
  routerParam,
308
307
  )
309
308
  const getCallBackName = `window.${callBackName}`
310
309
  var params = {
311
310
  jdRouter: '1',
312
311
  routerURL,
313
312
  routerParam,
314
313
  callBackName: getCallBackName,
315
314
  callBackId: `${callBackName}Android`,
316
315
  }
317
316
  window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params))
318
317
  callBack &&
319
318
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
320
319
  Message_Type.NATIVE_SHOW_DIALOG
321
320
  ] = callBack)
322
321
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
323
322
  data: params,
324
323
  })
325
324
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
326
325
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
327
326
  try {
328
327
  const getMessageJsonData =
329
328
  typeof messageData === 'string'
330
329
  ? JSON.parse(messageData)
331
330
  : messageData
332
331
  const { status } = getMessageJsonData
333
332
  if (status == '0') {
334
333
  const { type, data } = getMessageJsonData?.data
335
334
  const getSendJsonData =
336
335
  typeof data === 'string' ? JSON.parse(data) : data
337
336
  switch (type) {
338
337
  case Message_Type.NATIVE_INFO_DATA:
339
338
  case Message_Type.NATIVE_PAGE_FINISH:
340
339
  case Message_Type.NATIVE_GET_SCROLL_TOP:
341
340
  case Message_Type.NATIVE_TO_SCROLL_TOP:
342
341
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
343
342
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
344
343
  const getTypeCallBack =
345
344
  Message_Trigger_CallBackFuncObj[
346
345
  Message_CallBack_Name.MESSAGE_HOME_INIT
347
346
  ][type]
348
347
  if (getTypeCallBack) {
349
348
  const isCallBackFunc = typeof getTypeCallBack === 'function'
350
349
  console.log(
351
350
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
352
351
  type,
353
352
  isCallBackFunc,
354
353
  getMessageJsonData,
355
354
  )
356
355
  isCallBackFunc && getTypeCallBack(getSendJsonData)
357
356
  }
358
357
  break
359
358
  case Message_Type.NATIVE_SHOW_DIALOG:
360
359
  const showDialogCallBack =
361
360
  Message_Trigger_CallBackFuncObj[
362
361
  Message_CallBack_Name.MESSAGE_HOME_INIT
363
362
  ][type]
364
363
  if (showDialogCallBack) {
365
364
  const isCallBackFunc = typeof showDialogCallBack === 'function'
366
365
  console.log(
367
366
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
368
367
  type,
369
368
  isCallBackFunc,
370
369
  getMessageJsonData,
371
370
  )
372
371
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data)
373
372
  }
374
373
  break
375
374
  case Message_Type.NATIVE_PAGE_SCROLL:
376
375
  taroEventSendPageScrollInfo(data)
377
376
  break
378
377
  case Message_Type.NATIVE_PAGE_SCROLL_END:
379
378
  taroEventSendPageScrollEndInfo(data)
380
379
  break
381
380
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
382
381
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data)
383
382
  taroEventH5SendMsgToH5(getSendJsonData)
384
383
  break
385
384
  case Message_Type.UPDATE_NATIVE_DATA:
386
385
  console.log('接收到原生通知 UPDATE_NATIVE_DATA', messageData)
387
386
  console.log(
388
387
  '接收到原生通知 UPDATE_NATIVE_DATA getSendJsonData',
389
388
  getSendJsonData,
390
389
  )
391
390
  taroEventUpdateNativeData(getSendJsonData)
392
391
  break
393
392
  case Message_Type.H5_TO_SCROLL_TOP:
394
393
  taroEventH5ToScrollTop()
395
394
  default:
396
395
  }
397
396
  } else {
398
397
  console.log('传递数据获取异常', getMessageJsonData)
399
398
  }
400
399
  } catch (e) {
401
400
  console.log('获取转换异常结果', e)
402
401
  }
403
402
  }
404
403
  }
405
404
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
406
405
  data: params,
407
406
  })
408
407
  console.log('nativeOpenPopWebView height:', DEFAULT_POP_WEBVIEW_HEIGHT)
409
408
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
410
409
  data: {
411
410
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
412
411
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
413
412
  ...params,
414
413
  },
415
414
  })
416
415
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
417
416
  data: {
418
417
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
419
418
  ...params,
420
419
  },
421
420
  })
422
421
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS)
423
422
  console.log('popWebview关闭')
424
423
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
425
424
  data: params,
426
425
  })
427
426
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
428
427
  data: params,
429
428
  })
430
429
  window &&
431
430
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`)
432
431
  res: UtilsInterFace.nativePageScrollRes,
433
432
  const { displayHeight, offSetY } = res
434
433
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined')
435
434
  return
436
435
  if (isIosDevice) return res
437
436
  if (isAndroidDevice) {
438
437
  const deviceRatio = window.devicePixelRatio
439
438
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio)
440
439
  const cssOffsetY = Math.ceil(offSetY / deviceRatio)
441
440
  return {
442
441
  displayHeight: cssDisplayHeight,
443
442
  offSetY: cssOffsetY,
444
443
  }
445
444
  }
445
+ import Taro from '@tarojs/taro'
446
446
  isH5AndJdShopView,
447
447
  isJdApp,
448
448
  isIosDevice,
449
449
  isAndroidDevice,
450
450
  isJdAndAndroidDevice,
451
451
  (window.JDJshopViewInfo = {
452
452
  androidTouchSlop: 5,
453
453
  getAndroidTouchSlopState: false,
454
454
  })
455
455
  state => {
456
456
  console.log(
457
457
  'document trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:',
458
458
  state,
459
459
  )
460
460
  Taro.eventCenter.trigger(
461
461
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
462
462
  state ? 0 : 1,
463
463
  )
464
464
  },
465
465
  1500,
466
466
  { leading: false, trailing: true },
467
467
  state => {
468
468
  console.log(
469
469
  'IOS Android trigger PAGE_DOCUMENT_VISIBILITY_CHANGE state:',
470
470
  state,
471
471
  )
472
472
  Taro.eventCenter.trigger(
473
473
  TaroEventType.PAGE_DOCUMENT_VISIBILITY_CHANGE,
474
474
  state,
475
475
  )
476
476
  },
477
477
  1500,
478
478
  { leading: true, trailing: false },
479
479
  if (!isJdApp) {
480
480
  if (isH5) {
481
481
 
482
482
  const documentHandleVisibilityChange = () => {
483
483
  const state = document.hidden
484
484
  window.startDocumentVisibilityChange && documentThrottledTrigger(state)
485
485
  }
486
486
  document.removeEventListener(
487
487
  'visibilitychange',
488
488
  documentHandleVisibilityChange,
489
489
  )
490
490
  console.log('每次进入页面先清除浏览器visibilitychange监听事件')
491
491
  setTimeout(() => {
492
492
  document.addEventListener(
493
493
  'visibilitychange',
494
494
  documentHandleVisibilityChange,
495
495
  false,
496
496
  )
497
497
  window.startDocumentVisibilityChange = true
498
498
  }, 3000)
499
499
  }
500
500
  } else {
501
501
 
502
502
  !window.webviewVisible &&
503
503
  (window.webviewVisible = state => {
504
504
  window.startDocumentVisibilityChange && webviewThrottledTrigger(state)
505
505
  state === 1 && taroEventSendPageScrollInfo()
506
506
  })
507
507
  setTimeout(() => {
508
508
  window.startDocumentVisibilityChange = true
509
509
  }, 3000)
510
510
  !window.floatReceiveData && (window.floatReceiveData = () => {})
511
511
  }
512
512
  MESSAGE_HOME_INIT: 'messageHomeInitPageData',
513
513
  [Message_CallBack_Name.MESSAGE_HOME_INIT]: {},
514
514
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = {
515
515
  displayHeight: 1920,
516
516
  offSetY: 0,
517
517
  }
518
518
  console.log(
519
519
  '>>>>>>>>>>>>>>>>>>> render taroEventSendPageScrollInfo origin time:',
520
520
  Date.now(),
521
521
  'res:',
522
522
  options,
523
523
  )
524
524
  if (options) {
525
525
  latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] = options
526
526
  }
527
527
  const latestRes = latestFromNativeMsgStorage[TaroEventType.PAGE_SCROLL] || {}
528
528
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL, options || latestRes)
529
529
  console.log('PageScrollEnd fire')
530
530
  Taro.eventCenter.trigger(TaroEventType.PAGE_SCROLL_END, options)
531
531
  const { businessType } = options
532
532
  switch (businessType) {
533
533
  case H5_MSG_TO_H5_BUSINESSTYPE.JOIN_MEMBER_SUCCESS:
534
534
  Taro.eventCenter.trigger(TaroEventType.JOIN_MEMBER_SUCCESS, options)
535
535
  break
536
536
  default:
537
537
  break
538
538
  }
539
539
  const { shopHomeExtendInfo } = options
540
540
  if (shopHomeExtendInfo) {
541
541
  Taro.eventCenter.trigger(
542
542
  TaroEventType.UPDATE_SHOP_HOME_EXTEND_DATA,
543
543
  shopHomeExtendInfo,
544
544
  )
545
545
  }
546
546
  window && window.scrollTo(0, 0)
547
547
  Taro.eventCenter.trigger(TaroEventType.PAGE_INIT_EXPOSURE, options)
548
548
  NATIVE_PAGE_READ: 'pageReady',
549
549
  NATIVE_PAGE_FINISH: 'pageFinish',
550
550
  NATIVE_INFO_DATA: 'nativeInfoData',
551
551
  NATIVE_PAGE_SCROLL: 'pageScroll',
552
552
  NATIVE_PAGE_SCROLL_END: 'pageScrollEnd',
553
553
  NATIVE_GET_SCROLL_TOP: 'nativeGetScrollTop',
554
554
  NATIVE_TO_SCROLL_TOP: 'nativeToScrollTop',
555
555
  NATIVE_CLOSE_SCROLL_MESSAGE: 'nativeCloseScrollMessage',
556
556
  NATIVE_SHOW_TOAST: 'showToast',
557
557
  NATIVE_SHOW_DIALOG: 'showDialog',
558
558
  NATIVE_PAGE_LAYOUT_CHANGE: 'pageLayoutChange',
559
559
  NATIVE_HOME_PAGING_ENABLE: 'homePagingEnable',
560
560
  NATIVE_GET_SCALED_TOUCH_SLOP: 'getScaledTouchSlop',
561
561
  NATIVE_ADD_CART: 'addCart',
562
562
  NATIVE_OPEN_FLOAT: 'openFloat',
563
563
  NATIVE_INJECT_JS_FILE: 'needIsvPackage',
564
564
  NAVTIVE_FLOAT_READY: 'floatReady',
565
565
  NATIVE_REFRESH_PAGE: 'refreshPage',
566
566
  PAGE_PV_PARAM: 'pagePvParam',
567
567
  NATIVE_SCORLL_VIEW: 'nativeScrollControl',
568
568
  NATIVE_POP_WEBVIEW: 'popWebview',
569
569
  NATIVE_H5_SEND_MSG_TO_H5: 'h5SendMsgToH5',
570
570
  NATIVE_PUSH_NATIVE_PAGE: 'pushNativePage',
571
571
  UPDATE_NATIVE_DATA: 'updateNativeData',
572
572
  H5_TO_SCROLL_TOP: 'h5ToScrollTop',
573
573
  NATIVE_UPDATE_PAGE_INFO: 'pageCountInfo',
574
574
  OPEN: 'open',
575
575
  CLOSE: 'close',
576
576
  JOIN_MEMBER_SUCCESS: 'joinMemberSuccess',
577
577
  type = Message_Type.NATIVE_PAGE_READ,
578
578
  sendData: null | object = null,
579
579
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
580
580
  newHomePage: true,
581
581
  }
582
582
  if (sendData) {
583
583
  getRouterParam = Object.assign({}, getRouterParam, sendData)
584
584
  }
585
585
  isIosDevice &&
586
586
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
587
587
  method: 'callRouterModuleWithParams',
588
588
  params: {
589
589
  routerURL: 'router://JDShopModule/wrtNative',
590
590
  routerParam: JSON.stringify(getRouterParam),
591
591
  callBackName: getCallBackName,
592
592
  callBackId: `${callBackName}Ios`,
593
593
  },
594
594
  })
595
595
  isAndroidDevice &&
596
596
  window?.JDJshop?.wrtNative(
597
597
  JSON.stringify({
598
598
  routerParam: JSON.stringify(getRouterParam),
599
599
  callBackName: getCallBackName,
600
600
  callBackId: `${callBackName}Android`,
601
601
  }),
602
602
  )
603
603
  return true
604
604
  }
605
605
  return false
606
606
  console.log(
607
607
  'closeXView, isJdApp:',
608
608
  isJdApp,
609
609
  ',isH5AndJdShopView:',
610
610
  isH5AndJdShopView,
611
611
  ',isIosDevice:',
612
612
  isIosDevice,
613
613
  ',isAndroidDevice:',
614
614
  isAndroidDevice,
615
615
  )
616
616
  if (isJdApp && isH5AndJdShopView) {
617
617
  if (isIosDevice) {
618
618
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
619
619
  method: 'close',
620
620
  })
621
621
  } else if (isAndroidDevice) {
622
622
  window?.XView && window?.XView.close()
623
623
  }
624
624
  }
625
625
  callBack &&
626
626
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
627
627
  Message_Type.NATIVE_INFO_DATA
628
628
  ] = callBack)
629
629
  console.log(`nativePageLoadReady:${JSON.stringify(sendData)}`)
630
630
  nativePageRegisterMessage(
631
631
  Message_Type.NATIVE_PAGE_READ,
632
632
  sendData,
633
633
  Message_CallBack_Name.MESSAGE_HOME_INIT,
634
634
  )
635
635
  console.log('通信原始数据', sendData)
636
636
  return nativePageGetMessageInitCallBack()
637
637
  return nativePageRegisterMessage(
638
638
  Message_Type.NATIVE_PAGE_FINISH,
639
639
  null,
640
640
  Message_CallBack_Name.MESSAGE_HOME_INIT,
641
641
  )
642
642
  callBack &&
643
643
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
644
644
  Message_Type.NATIVE_GET_SCROLL_TOP
645
645
  ] = callBack)
646
646
  return nativePageRegisterMessage(
647
647
  Message_Type.NATIVE_GET_SCROLL_TOP,
648
648
  null,
649
649
  Message_CallBack_Name.MESSAGE_HOME_INIT,
650
650
  )
651
651
  callBack &&
652
652
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
653
653
  Message_Type.NATIVE_TO_SCROLL_TOP
654
654
  ] = callBack)
655
655
  nativePageRegisterMessage(
656
656
  Message_Type.NATIVE_TO_SCROLL_TOP,
657
657
  {
658
658
  data: {
659
659
  scrollTop,
660
660
  },
661
661
  },
662
662
  Message_CallBack_Name.MESSAGE_HOME_INIT,
663
663
  )
664
664
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE)
665
665
  if (isJdAndAndroidDevice) {
666
666
  callBack &&
667
667
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
668
668
  Message_Type.NATIVE_HOME_PAGING_ENABLE
669
669
  ] = callBack)
670
670
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
671
671
  data: {
672
672
  enable: enable,
673
673
  },
674
674
  })
675
675
  }
676
676
  if (isJdAndAndroidDevice) {
677
677
  callBack &&
678
678
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
679
679
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
680
680
  ] = callBack)
681
681
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP)
682
682
  }
683
683
  SUCCESS: 'success',
684
684
  FAIL: 'fail',
685
685
  NORMAL: 'normal',
686
686
  SUCCESS: 2,
687
687
  FAIL: 3,
688
688
  NORMAL: 1,
689
689
  SUCCESS: 2,
690
690
  FAIL: 3,
691
691
  NORMAL: 1,
692
692
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
693
693
  data: {
694
694
  message: title,
695
695
  iconType: showType,
696
696
  duration,
697
697
  },
698
698
  })
699
699
  console.log('showToastByRouter:', title, showType)
700
700
  if (isJdApp && isH5AndJdShopView) {
701
701
  const routerParam = {
702
702
  message: title,
703
703
  iconType: showType,
704
704
  duration,
705
705
  }
706
706
  if (isIosDevice) {
707
707
  callRouterIOS({
708
708
  routerURL: 'router://JDShopModule/showToast',
709
709
  routerParam,
710
710
  })
711
711
  } else if (isAndroidDevice) {
712
712
  callRouterAndroid({
713
713
  routerURL: 'router://JDJShopModule/showToast',
714
714
  routerParam,
715
715
  })
716
716
  }
717
717
  }
718
718
  routerURL,
719
719
  routerParam,
720
720
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
721
721
  console.log(
722
722
  'callRouterIOS routerURL:',
723
723
  routerURL,
724
724
  ',routerParam:',
725
725
  routerParam,
726
726
  )
727
727
  const getCallBackName = `window.${callBackName}`
728
728
  const params = {
729
729
  routerURL,
730
730
  routerParam,
731
731
  callBackName: getCallBackName,
732
732
  callBackId: `${callBackName}Ios`,
733
733
  }
734
734
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
735
735
  method: 'callRouterModuleWithParams',
736
736
  params: JSON.stringify(params),
737
737
  })
738
738
  routerURL,
739
739
  routerParam,
740
740
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
741
741
  console.log(
742
742
  'callRouterAndroid routerURL:',
743
743
  routerURL,
744
744
  ',routerParam:',
745
745
  routerParam,
746
746
  )
747
747
  const getCallBackName = `window.${callBackName}`
748
748
  var params = {
749
749
  jdRouter: '1',
750
750
  routerURL,
751
751
  routerParam,
752
752
  callBackName: getCallBackName,
753
753
  callBackId: `${callBackName}Android`,
754
754
  }
755
755
  window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params))
756
756
  callBack &&
757
757
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
758
758
  Message_Type.NATIVE_SHOW_DIALOG
759
759
  ] = callBack)
760
760
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
761
761
  data: params,
762
762
  })
763
763
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
764
764
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = messageData => {
765
765
  try {
766
766
  const getMessageJsonData =
767
767
  typeof messageData === 'string'
768
768
  ? JSON.parse(messageData)
769
769
  : messageData
770
770
  const { status } = getMessageJsonData
771
771
  if (status == '0') {
772
772
  const { type, data } = getMessageJsonData?.data
773
773
  const getSendJsonData =
774
774
  typeof data === 'string' ? JSON.parse(data) : data
775
775
  switch (type) {
776
776
  case Message_Type.NATIVE_INFO_DATA:
777
777
  case Message_Type.NATIVE_PAGE_FINISH:
778
778
  case Message_Type.NATIVE_GET_SCROLL_TOP:
779
779
  case Message_Type.NATIVE_TO_SCROLL_TOP:
780
780
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
781
781
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
782
782
  const getTypeCallBack =
783
783
  Message_Trigger_CallBackFuncObj[
784
784
  Message_CallBack_Name.MESSAGE_HOME_INIT
785
785
  ][type]
786
786
  if (getTypeCallBack) {
787
787
  const isCallBackFunc = typeof getTypeCallBack === 'function'
788
788
  console.log(
789
789
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
790
790
  type,
791
791
  isCallBackFunc,
792
792
  getMessageJsonData,
793
793
  )
794
794
  isCallBackFunc && getTypeCallBack(getSendJsonData)
795
795
  }
796
796
  break
797
797
  case Message_Type.NATIVE_SHOW_DIALOG:
798
798
  const showDialogCallBack =
799
799
  Message_Trigger_CallBackFuncObj[
800
800
  Message_CallBack_Name.MESSAGE_HOME_INIT
801
801
  ][type]
802
802
  if (showDialogCallBack) {
803
803
  const isCallBackFunc = typeof showDialogCallBack === 'function'
804
804
  console.log(
805
805
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
806
806
  type,
807
807
  isCallBackFunc,
808
808
  getMessageJsonData,
809
809
  )
810
810
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data)
811
811
  }
812
812
  break
813
813
  case Message_Type.NATIVE_PAGE_SCROLL:
814
814
  taroEventSendPageScrollInfo(data)
815
815
  break
816
816
  case Message_Type.NATIVE_PAGE_SCROLL_END:
817
817
  taroEventSendPageScrollEndInfo(data)
818
818
  break
819
819
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
820
820
  console.log('接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5', data)
821
821
  taroEventH5SendMsgToH5(getSendJsonData)
822
822
  break
823
823
  case Message_Type.UPDATE_NATIVE_DATA:
824
824
  console.log('接收到原生通知 UPDATE_NATIVE_DATA', messageData)
825
825
  console.log(
826
826
  '接收到原生通知 UPDATE_NATIVE_DATA getSendJsonData',
827
827
  getSendJsonData,
828
828
  )
829
829
  taroEventUpdateNativeData(getSendJsonData)
830
830
  break
831
831
  case Message_Type.H5_TO_SCROLL_TOP:
832
832
  taroEventH5ToScrollTop()
833
833
  default:
834
834
  }
835
835
  } else {
836
836
  console.log('传递数据获取异常', getMessageJsonData)
837
837
  }
838
838
  } catch (e) {
839
839
  console.log('获取转换异常结果', e)
840
840
  }
841
841
  }
842
842
  }
843
843
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
844
844
  data: params,
845
845
  })
846
846
  console.log('nativeOpenPopWebView height:', DEFAULT_POP_WEBVIEW_HEIGHT)
847
847
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
848
848
  data: {
849
849
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
850
850
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
851
851
  ...params,
852
852
  },
853
853
  })
854
854
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
855
855
  data: {
856
856
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
857
857
  ...params,
858
858
  },
859
859
  })
860
860
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS)
861
861
  console.log('popWebview关闭')
862
862
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
863
863
  data: params,
864
864
  })
865
865
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
866
866
  data: params,
867
867
  })
868
868
  window &&
869
869
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`)
870
870
  res: UtilsInterFace.nativePageScrollRes,
871
871
  const { displayHeight, offSetY } = res
872
872
  if (typeof displayHeight === 'undefined' || typeof offSetY === 'undefined')
873
873
  return
874
874
  if (isIosDevice) return res
875
875
  if (isAndroidDevice) {
876
876
  const deviceRatio = window.devicePixelRatio
877
877
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio)
878
878
  const cssOffsetY = Math.ceil(offSetY / deviceRatio)
879
879
  return {
880
880
  displayHeight: cssDisplayHeight,
881
881
  offSetY: cssOffsetY,
882
882
  }
883
883
  }
884
884
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
885
885
  data: params,
886
886
  })