@conecli/cone-render 0.9.1-shop2.9 → 0.10.1-beta.1

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
  NATIVE_MOBILE_CONFIG: "getMobileConfig",
617
617
  OPEN: "open",
618
618
  CLOSE: "close",
619
619
  JOIN_MEMBER_SUCCESS: "joinMemberSuccess",
620
620
  type = Message_Type.NATIVE_PAGE_READ,
621
621
  sendData: null | object = null,
622
622
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT
623
623
  console.log(
624
624
  "初始化nativePageRegisterMessage-isAppStowShop-type-sendData-isJdApp-isH5AndJdShopView",
625
625
  isAppStowShop,
626
626
  type,
627
627
  sendData,
628
628
  isJdApp,
629
629
  isH5AndJdShopView,
630
630
  callBackName
631
631
  );
632
632
  if (isJdApp) {
633
633
  const getCallBackName = `window.${callBackName}`;
634
634
  let getRouterParam = {
635
635
  type,
636
636
  callBackName: getCallBackName,
637
637
  };
638
638
  if (!isAppStowShop) {
639
639
  getRouterParam["newHomePage"] = true;
640
640
  }
641
641
  if (sendData) {
642
642
  getRouterParam = Object.assign({}, getRouterParam, sendData);
643
643
  }
644
644
  if (isIosDevice) {
645
645
  const routerURL = isAppStowShop
646
646
  ? "router://JDBDecorationPlatformModule/wrtNative"
647
647
  : "router://JDShopModule/wrtNative";
648
648
  if (versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) >= 0) {
649
649
  callRouterIOS({
650
650
  routerURL,
651
651
  routerParam: getRouterParam,
652
652
  });
653
653
  } else {
654
654
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
655
655
  method: "callRouterModuleWithParams",
656
656
  params: {
657
657
  routerURL,
658
658
  routerParam: JSON.stringify(getRouterParam),
659
659
  callBackName: getCallBackName,
660
660
  callBackId: `${callBackName}Ios`,
661
661
  },
662
662
  });
663
663
  }
664
664
  } else if (isAndroidDevice) {
665
665
  window?.JDJshop?.wrtNative(
666
666
  JSON.stringify({
667
667
  routerParam: JSON.stringify(getRouterParam),
668
668
  callBackName: getCallBackName,
669
669
  callBackId: `${callBackName}Android`,
670
670
  })
671
671
  );
672
672
  }
673
673
  return true;
674
674
  }
675
675
  return false;
676
676
  if (isJdApp) {
677
677
  if (isIosDevice) {
678
678
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage({
679
679
  method: "close",
680
680
  });
681
681
  } else if (isAndroidDevice) {
682
682
  window?.XView && window?.XView.close();
683
683
  }
684
684
  }
685
685
  console.log("nativePageLoadReady called");
686
686
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
687
687
  Message_Type.NATIVE_INFO_DATA
688
688
  ] = async (data: any) => {
689
689
  console.log("nativePageLoadReady callBack:", callBack, ", data:", data);
690
690
  callBack && callBack(data);
691
691
  };
692
692
  nativePageGetMessageInitCallBack();
693
693
  nativePageRegisterMessage(
694
694
  Message_Type.NATIVE_PAGE_READ,
695
695
  sendData,
696
696
  Message_CallBack_Name.MESSAGE_HOME_INIT
697
697
  );
698
698
  return nativePageRegisterMessage(
699
699
  Message_Type.NATIVE_PAGE_FINISH,
700
700
  null,
701
701
  Message_CallBack_Name.MESSAGE_HOME_INIT
702
702
  );
703
703
  callBack &&
704
704
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
705
705
  Message_Type.NATIVE_GET_SCROLL_TOP
706
706
  ] = callBack);
707
707
  return nativePageRegisterMessage(
708
708
  Message_Type.NATIVE_GET_SCROLL_TOP,
709
709
  null,
710
710
  Message_CallBack_Name.MESSAGE_HOME_INIT
711
711
  );
712
712
  callBack &&
713
713
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
714
714
  Message_Type.NATIVE_TO_SCROLL_TOP
715
715
  ] = callBack);
716
716
  nativePageRegisterMessage(
717
717
  Message_Type.NATIVE_TO_SCROLL_TOP,
718
718
  {
719
719
  data: {
720
720
  scrollTop,
721
721
  },
722
722
  },
723
723
  Message_CallBack_Name.MESSAGE_HOME_INIT
724
724
  );
725
725
  Taro.eventCenter.trigger(TaroEventType.LUXURY_INFORM_CHANGE_HEIGHT, data);
726
726
  configName: string,
727
727
  isBeforePageReady: boolean
728
728
  return new Promise((resolve, reject) => {
729
729
  if (!isJdApp) {
730
730
  reject({
731
731
  code: -1,
732
732
  message: "getMPaasConfigByNative 只在松果APP店铺内部调用有效。",
733
733
  });
734
734
  return;
735
735
  }
736
736
  if (
737
737
  isIosDevice &&
738
738
  isBeforePageReady &&
739
739
  versionCompare(jdAppVersionStr, MPAAS_CONFIG_APP_VERSION) < 0
740
740
  ) {
741
741
  reject({
742
742
  code: -2,
743
743
  message: `在nativePageLoadReady之前调用,低于v${MPAAS_CONFIG_APP_VERSION}不会有返回,兜底处理`,
744
744
  });
745
745
  return;
746
746
  }
747
747
  Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
748
748
  Message_Type.NATIVE_MOBILE_CONFIG
749
749
  ] = (data: any) => {
750
750
  const configData = isAndroidDevice ? data : data?.data;
751
751
  const res = JSONParse(configData);
752
752
  resolve(res);
753
753
  };
754
754
  nativePageGetMessageInitCallBack();
755
755
  nativePageRegisterMessage(
756
756
  Message_Type.NATIVE_MOBILE_CONFIG,
757
757
  {
758
758
  data: {
759
759
  space: isIosDevice ? "JDCDSHOP" : "JDShop",
760
760
  configName,
761
761
  },
762
762
  },
763
763
  Message_CallBack_Name.MESSAGE_HOME_INIT
764
764
  );
765
765
  });
766
766
  bussinessKey: string,
767
767
  isBeforePageReady: boolean
768
768
  if (!bussinessKey) {
769
769
  return null;
770
770
  }
771
771
  if (!isJdApp) {
772
772
  return null;
773
773
  }
774
774
  const CACHED_MPAAS_KEY = `mpaas_${CONFIG_NAME}`;
775
775
  const CACHED_MPAAS_KEY_HELPER = `${CACHED_MPAAS_KEY}_helper`;
776
776
  let configData = window[CACHED_MPAAS_KEY];
777
777
  if (configData == null) {
778
778
  configData = await getMPaasConfigByNative(
779
779
  CONFIG_NAME,
780
780
  isBeforePageReady
781
781
  ).catch((e) => {
782
782
  console.log("getMPaasConfigByNative error:", e);
783
783
  return null;
784
784
  });
785
785
  window[CACHED_MPAAS_KEY_HELPER] = {};
786
786
  window[CACHED_MPAAS_KEY] = configData;
787
787
  }
788
788
  if (configData) {
789
789
  const originData = configData[bussinessKey];
790
790
  const hasParse = window[CACHED_MPAAS_KEY_HELPER][bussinessKey];
791
791
  try {
792
792
  if (
793
793
  hasParse ||
794
794
  ["object", "boolean", "number"].includes(typeof originData)
795
795
  ) {
796
796
  return originData;
797
797
  } else {
798
798
  window[CACHED_MPAAS_KEY_HELPER][bussinessKey] = true;
799
799
  const parseData = JSON.parse(configData[bussinessKey]);
800
800
  configData[bussinessKey] = parseData;
801
801
  return parseData;
802
802
  }
803
803
  } catch (e) {
804
804
  return originData;
805
805
  }
806
806
  }
807
807
  return null;
808
808
  nativePageRegisterMessage(Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE);
809
809
  if (isJdAndAndroidDevice) {
810
810
  callBack &&
811
811
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
812
812
  Message_Type.NATIVE_HOME_PAGING_ENABLE
813
813
  ] = callBack);
814
814
  nativePageRegisterMessage(Message_Type.NATIVE_HOME_PAGING_ENABLE, {
815
815
  data: {
816
816
  enable: enable,
817
817
  },
818
818
  });
819
819
  }
820
820
  if (isJdAndAndroidDevice) {
821
821
  callBack &&
822
822
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
823
823
  Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP
824
824
  ] = callBack);
825
825
  nativePageRegisterMessage(Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP);
826
826
  }
827
827
  SUCCESS: "success",
828
828
  FAIL: "fail",
829
829
  NORMAL: "normal",
830
830
  SUCCESS: 2,
831
831
  FAIL: 3,
832
832
  NORMAL: 1,
833
833
  SUCCESS: 2,
834
834
  FAIL: 3,
835
835
  NORMAL: 1,
836
836
  [ToastIosType.NORMAL]: ToastType.NORMAL,
837
837
  [ToastIosType.SUCCESS]: ToastType.SUCCESS,
838
838
  [ToastIosType.FAIL]: ToastType.FAIL,
839
839
  if (isShowNewRouterToast) {
840
840
  const changeShowType = isJdAndIosDevice
841
841
  ? toastIosTypeToNewToastType[showType] || showType
842
842
  : showType;
843
843
  showToastByRouter(title, changeShowType, duration * 1000);
844
844
  } else {
845
845
  nativePageRegisterMessage(Message_Type.NATIVE_SHOW_TOAST, {
846
846
  data: {
847
847
  message: title,
848
848
  iconType: showType,
849
849
  duration,
850
850
  },
851
851
  });
852
852
  }
853
853
  console.log("showToastByRouter:", title, showType);
854
854
  if (isJdApp) {
855
855
  const routerParam = {
856
856
  message: title,
857
857
  iconType: showType,
858
858
  duration,
859
859
  };
860
860
  if (isIosDevice) {
861
861
  callRouterIOS({
862
862
  routerURL: "router://JDShopModule/showToast",
863
863
  routerParam,
864
864
  });
865
865
  } else if (isAndroidDevice) {
866
866
  callRouterAndroid({
867
867
  routerURL: "router://JDJShopModule/showToast",
868
868
  routerParam,
869
869
  });
870
870
  }
871
871
  }
872
872
  routerURL,
873
873
  routerParam,
874
874
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
875
875
  }) => {
876
876
  console.log(
877
877
  "callRouterIOS routerURL:",
878
878
  routerURL,
879
879
  ",routerParam:",
880
880
  routerParam
881
881
  );
882
882
  const getCallBackName = `window.${callBackName}`;
883
883
  const params = {
884
884
  routerURL,
885
885
  routerParam,
886
886
  callBackName: getCallBackName,
887
887
  callBackId: `${callBackName}Ios`,
888
888
  };
889
889
  window?.webkit?.messageHandlers?.JDAppUnite?.postMessage({
890
890
  method: "callRouterModuleWithParams",
891
891
  params: JSON.stringify(params),
892
892
  });
893
893
  routerURL,
894
894
  routerParam,
895
895
  callBackName = Message_CallBack_Name.MESSAGE_HOME_INIT,
896
896
  }) => {
897
897
  console.log(
898
898
  "callRouterAndroid routerURL:",
899
899
  routerURL,
900
900
  ",routerParam:",
901
901
  routerParam
902
902
  );
903
903
  const getCallBackName = `window.${callBackName}`;
904
904
  var params = {
905
905
  jdRouter: "1",
906
906
  routerURL,
907
907
  routerParam,
908
908
  callBackName: getCallBackName,
909
909
  callBackId: `${callBackName}Android`,
910
910
  };
911
911
  window?.JDAppUnite?.callRouterModuleWithParams(JSON.stringify(params));
912
912
  callBack &&
913
913
  (Message_Trigger_CallBackFuncObj[Message_CallBack_Name.MESSAGE_HOME_INIT][
914
914
  Message_Type.NATIVE_SHOW_DIALOG
915
915
  ] = callBack);
916
916
  return nativePageRegisterMessage(Message_Type.NATIVE_SHOW_DIALOG, {
917
917
  data: params,
918
918
  });
919
919
  if (!isJdApp) {
920
920
  return;
921
921
  }
922
922
  if (!window[Message_CallBack_Name.MESSAGE_HOME_INIT]) {
923
923
  window[Message_CallBack_Name.MESSAGE_HOME_INIT] = (messageData) => {
924
924
  try {
925
925
  const getMessageJsonData = JSONParse(messageData);
926
926
  const { status } = getMessageJsonData;
927
927
  if (status == "0") {
928
928
  const { type, data } = getMessageJsonData?.data;
929
929
  const getSendJsonData = JSONParse(data);
930
930
  switch (type) {
931
931
  case Message_Type.NATIVE_INFO_DATA:
932
932
  case Message_Type.NATIVE_PAGE_FINISH:
933
933
  case Message_Type.NATIVE_GET_SCROLL_TOP:
934
934
  case Message_Type.NATIVE_TO_SCROLL_TOP:
935
935
  case Message_Type.NATIVE_CLOSE_SCROLL_MESSAGE:
936
936
  case Message_Type.NATIVE_GET_SCALED_TOUCH_SLOP:
937
937
  case Message_Type.NATIVE_MOBILE_CONFIG:
938
938
  const getTypeCallBack =
939
939
  Message_Trigger_CallBackFuncObj[
940
940
  Message_CallBack_Name.MESSAGE_HOME_INIT
941
941
  ][type];
942
942
  if (getTypeCallBack) {
943
943
  const isCallBackFunc = typeof getTypeCallBack === "function";
944
944
  console.log(
945
945
  "接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData",
946
946
  getSendJsonData
947
947
  );
948
948
  isCallBackFunc && getTypeCallBack(getSendJsonData);
949
949
  }
950
950
  break;
951
951
  case Message_Type.NATIVE_SHOW_DIALOG:
952
952
  const showDialogCallBack =
953
953
  Message_Trigger_CallBackFuncObj[
954
954
  Message_CallBack_Name.MESSAGE_HOME_INIT
955
955
  ][type];
956
956
  if (showDialogCallBack) {
957
957
  const isCallBackFunc = typeof showDialogCallBack === "function";
958
958
  console.log(
959
959
  `获取${type}类型数据数据type isCallBackFunc getMessageJsonData `,
960
960
  type,
961
961
  isCallBackFunc,
962
962
  getMessageJsonData
963
963
  );
964
964
  isCallBackFunc && showDialogCallBack(getMessageJsonData?.data);
965
965
  }
966
966
  break;
967
967
  case Message_Type.NATIVE_PAGE_SCROLL:
968
968
  taroEventSendPageScrollInfo(data);
969
969
  break;
970
970
  case Message_Type.NATIVE_PAGE_SCROLL_END:
971
971
  taroEventSendPageScrollEndInfo(data);
972
972
  break;
973
973
  case Message_Type.NATIVE_H5_SEND_MSG_TO_H5:
974
974
  console.log("接收到原生通知 NATIVE_H5_SEND_MSG_TO_H5", data);
975
975
  taroEventH5SendMsgToH5(getSendJsonData);
976
976
  break;
977
977
  case Message_Type.UPDATE_NATIVE_DATA:
978
978
  taroEventUpdateNativeData(getSendJsonData);
979
979
  break;
980
980
  case Message_Type.H5_TO_SCROLL_TOP:
981
981
  taroEventH5ToScrollTop();
982
982
  break;
983
983
  case Message_Type.LUXURY_INFORM_CHANGE_HEIGHT:
984
984
  taroEventSendImmersionStatus(data);
985
985
  break;
986
986
  case Message_Type.NATIVE_SHOPSTOW_SEND:
987
987
  console.log("接收到原生通知 NATIVE_SHOPSTOW_SEND", messageData);
988
988
  console.log(
989
989
  "接收到原生通知 NATIVE_SHOPSTOW_SEND getSendJsonData",
990
990
  getSendJsonData
991
991
  );
992
992
  taroEventShopStowSend(getSendJsonData);
993
993
  break;
994
994
  default:
995
995
  }
996
996
  } else {
997
997
  console.log("传递数据获取异常", getMessageJsonData);
998
998
  }
999
999
  } catch (e) {
1000
1000
  console.log("获取转换异常结果", e);
1001
1001
  }
1002
1002
  };
1003
1003
  }
1004
1004
  nativePageRegisterMessage(Message_Type.NATIVE_OPEN_FLOAT, {
1005
1005
  data: params,
1006
1006
  });
1007
1007
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1008
1008
  data: {
1009
1009
  type: NATIVE_POP_WEBVIEW_TYPE.OPEN,
1010
1010
  height: DEFAULT_POP_WEBVIEW_HEIGHT,
1011
1011
  ...params,
1012
1012
  },
1013
1013
  });
1014
1014
  nativePageRegisterMessage(Message_Type.NATIVE_POP_WEBVIEW, {
1015
1015
  data: {
1016
1016
  type: NATIVE_POP_WEBVIEW_TYPE.CLOSE,
1017
1017
  ...params,
1018
1018
  },
1019
1019
  });
1020
1020
  Taro.eventCenter.off(TaroEventType.JOIN_MEMBER_SUCCESS);
1021
1021
  console.log("popWebview关闭");
1022
1022
  nativePageRegisterMessage(Message_Type.NATIVE_H5_SEND_MSG_TO_H5, {
1023
1023
  data: params,
1024
1024
  });
1025
1025
  nativePageRegisterMessage(Message_Type.NATIVE_PUSH_NATIVE_PAGE, {
1026
1026
  data: params,
1027
1027
  });
1028
1028
  window &&
1029
1029
  (window.location.href = `xview://search?request={"action":"${Message_Type.NAVTIVE_FLOAT_READY}"}`);
1030
1030
  res: UtilsInterFace.nativePageScrollRes
1031
1031
  const { displayHeight, offSetY } = res;
1032
1032
  if (typeof displayHeight === "undefined" || typeof offSetY === "undefined")
1033
1033
  return;
1034
1034
  if (isIosDevice) return res;
1035
1035
  if (isAndroidDevice) {
1036
1036
  const deviceRatio = window.devicePixelRatio;
1037
1037
  const cssDisplayHeight = Math.ceil(displayHeight / deviceRatio);
1038
1038
  const cssOffsetY = Math.ceil(offSetY / deviceRatio);
1039
1039
  return {
1040
1040
  displayHeight: cssDisplayHeight,
1041
1041
  offSetY: cssOffsetY,
1042
1042
  };
1043
1043
  }
1044
1044
  nativePageRegisterMessage(Message_Type.NATIVE_UPDATE_PAGE_INFO, {
1045
1045
  data: params,
1046
1046
  });
1047
1047
  nativePageRegisterMessage(Message_Type.NATIVE_TO_BUYER_SHOW_DETAIL, {
1048
1048
  data: params,
1049
1049
  });
1050
1050
  nativePageRegisterMessage(Message_Type.NATIVE_TO_HIDE_JD_SHOP_HEADER, {
1051
1051
  data: params,
1052
1052
  });