@conecli/cone-render 0.8.42 → 0.8.44

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