@conecli/cone-render 0.9.1-shop2.2 → 0.9.1-shop2.21

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