@conecli/cone-render 0.9.1-shop2.7 → 0.9.1-shop2.8

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