@conecli/cone-render 0.9.1-shop2.13 → 0.9.1-shop2.15

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