@conecli/cone-render 0.9.1-shop2.11 → 0.9.1-shop2.12

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