@conecli/cone-render 0.10.1-shop3.20 → 0.10.1-shop3.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.
@@ -1 +1 @@
1
- import {
2
1
  isApp,
3
2
  isIOS,
4
3
  getAppVersion,
5
4
  version,
6
5
  getUUID,
7
6
  getUrlQuery,
8
7
  assign,
9
8
  isString,
10
9
  isObject,
11
10
  serialize,
12
11
  isAndroid,
13
12
  versionCompare,
14
13
  isIPad,
15
14
  isTablet,
16
15
  CHANNEL_TYPE,
17
16
  JDShopViewBusinessPathType,
18
17
  SECTION_HOME_TAB_NAME_TYPE,
19
18
  SECTION_HOME_TAB_TYPE,
20
19
  DraBuryPointFlags,
21
20
  MPAAS_CONFIG_APP_VERSION,
22
21
  new Promise((resolve, reject) => {
23
22
  if (window?.__sgm__) {
24
23
  resolve(true);
25
24
  } else {
26
25
  if (isSgmReadyError) {
27
26
  console.log('当前sgm初始化失败');
28
27
  reject(false);
29
28
  } else {
30
29
  ready('__sgm__', 2000)
31
30
  .then(() => {
32
31
  isSgmReadyError = false;
33
32
  console.log('当前sgm初始化成功');
34
33
  resolve(true);
35
34
  })
36
35
  .catch(() => {
37
36
  isSgmReadyError = true;
38
37
  console.log('当前sgm初始化失败');
39
38
  reject(false);
40
39
  });
41
40
  }
42
41
  }
43
42
  });
44
43
  console.log(message);
45
44
  reject(new Error(message));
46
45
  return ready('dra', 2000)
47
46
  .then(() => {
48
47
  isNewDraSdkReadyError = false;
49
48
  console.log('当前新版烛龙sdk初始化成功');
50
49
  return true;
51
50
  })
52
51
  .catch(() => {
53
52
  isNewDraSdkReadyError = true;
54
53
  throw new Error('当前新版烛龙sdk初始化失败');
55
54
  });
56
55
  return new Promise((resolve, reject) => {
57
56
  if (window?.dra) {
58
57
  resolve(true);
59
58
  } else if (isNewDraSdkReadyError) {
60
59
  logAndReject('当前新版烛龙sdk初始化失败', reject);
61
60
  } else {
62
61
  initializeDraSdk()
63
62
  .then(resolve)
64
63
  .catch((error) => logAndReject(error.message, reject));
65
64
  }
66
65
  });
67
66
  if (window.screen?.orientation?.type) {
68
67
  console.info(
69
68
  '通过window.screen?.orientation?.type方式获取当前pad屏幕是否是横屏',
70
69
  window.screen?.orientation?.type,
71
70
  '测试低版本通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
72
71
  window?.orientation,
73
72
  );
74
73
  return /landscape/i.test(window.screen.orientation.type);
75
74
  } else if (window?.orientation) {
76
75
  console.info(
77
76
  '通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
78
77
  window?.orientation,
79
78
  );
80
79
  return [90, -90].includes(window?.orientation);
81
80
  } else {
82
81
  console.info(
83
82
  '通过window.matchMedia((orientation: landscape))?.matches方式获取当前pad屏幕是否是横屏',
84
83
  window.matchMedia('(orientation: landscape)')?.matches,
85
84
  );
86
85
  return window.matchMedia('(orientation: landscape)')?.matches;
87
86
  }
88
87
  try {
89
88
  return JSON.parse(decodeURIComponent(getUrlQuery('cookie')));
90
89
  } catch (e) {
91
90
  return {};
92
91
  }
93
92
  'harmony' === (userAgent.split(';')[1] || '').toLowerCase() || /arkweb/i.test(userAgent);
94
93
  window.shopGlobalSwitch?.isH5AndJdShopViewH5ScrollVersion || '';
95
94
  !!document.getElementById('mallType') &&
96
95
  !!document.getElementById('pageInstance_id') &&
97
96
  !!document.getElementById('pageInstance_appId');
98
97
  isTjScence &&
99
98
  isWxMiniH5View &&
100
99
  (urlCookie['wxapp_type'] == '2' ||
101
100
  cookie.get('wxapp_type') == '2' ||
102
101
  parseQueryUrlObj['tjChannel'] === 'jxxcx');
103
102
  isTjScence && isWxMiniH5View && parseQueryUrlObj['sourceApp'] === 'haowujie';
104
103
  isTjScence &&
105
104
  (parseQueryUrlObj['appCode'] === 'ms27cba806' ||
106
105
  document.referrer?.match(/(?:https?:)?\/\/(?:kpl\.m|css|cs)\.jd\.com/i)?.length ||
107
106
  (parseQueryUrlObj['sourceApp'] == 'jsb-m' && parseQueryUrlObj['appCode'] === '') ||
108
107
  parseQueryUrlObj['tjChannel'] === 'tjm');
109
108
  if (isH5AdnJxMini) {
110
109
  return 'jxxcx';
111
110
  } else if (isTJApp) {
112
111
  return 'tjapp';
113
112
  } else if (isTjM) {
114
113
  return 'tjm';
115
114
  } else if (isTjJxM) {
116
115
  return 'jxh5';
117
116
  }
118
117
  return '';
119
118
  START: 'start',
120
119
  MOVE: 'move',
121
120
  END: 'end',
122
121
  x: 0,
123
122
  y: 0,
124
123
  const startX = startPos.x;
125
124
  const startY = startPos.y;
126
125
  const endX = touchEvent.clientX;
127
126
  const endY = touchEvent.clientY;
128
127
  const dy = startY - endY;
129
128
  const dx = endX - startX;
130
129
  let result = 0;
131
130
  if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
132
131
  return result;
133
132
  }
134
133
  const angle = (Math.atan2(dy, dx) * 180) / Math.PI;
135
134
  if (angle >= -45 && angle < 45) {
136
135
  result = 4;
137
136
  } else if (angle >= 45 && angle < 135) {
138
137
  result = 1;
139
138
  } else if (angle >= -135 && angle < -45) {
140
139
  result = 2;
141
140
  } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
142
141
  result = 3;
143
142
  }
144
143
  return result;
145
144
  e: Event,
146
145
  touchType = TouchType.START,
147
146
  stopTouchDocumentScrollState = false,
148
147
  if (isJdApp && e) {
149
148
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0];
150
149
  let _touchState = touchType;
151
150
  let _getDirectionState = false;
152
151
  if (touchType === TouchType.START) {
153
152
  StopNativeScrollEventPos.x = touchEvent.clientX;
154
153
  StopNativeScrollEventPos.y = touchEvent.clientY;
155
154
  } else if (touchType === TouchType.MOVE) {
156
155
  _getDirectionState = [1, 2].includes(
157
156
  touchMoveGetSlideDirection(StopNativeScrollEventPos, touchEvent),
158
157
  );
159
158
  if (_getDirectionState) {
160
159
  _touchState = TouchType.END;
161
160
  }
162
161
  console.log(
163
162
  '对外提供阻止横滑方法,当前touchType为move,设定1、2向上或向下方向,当前计算后的滑动是否为纵向',
164
163
  _getDirectionState,
165
164
  );
166
165
  } else if (touchType === TouchType.END) {
167
166
  StopNativeScrollEventPos.x = 0;
168
167
  StopNativeScrollEventPos.y = 0;
169
168
  }
170
169
  isIosDevice
171
170
  ? iosDeviceStopNativeScrollEvent(e, _touchState, stopTouchDocumentScrollState)
172
171
  : androidDeviceStopNativeScrollEvent(_touchState, stopTouchDocumentScrollState);
173
172
  if (
174
173
  !isAppHomeForMarketPage &&
175
174
  stopTouchDocumentScrollState &&
176
175
  _touchState === TouchType.START
177
176
  ) {
178
177
  rootEleNode && rootEleNode.classList.add('over-hidden');
179
178
  }
180
179
  if (_touchState === TouchType.MOVE && _getDirectionState) {
181
180
  rootEleNode &&
182
181
  rootEleNode.classList.contains('over-hidden') &&
183
182
  rootEleNode.classList.remove('over-hidden');
184
183
  } else if (_touchState === TouchType.END) {
185
184
  setTimeout(
186
185
  () => {
187
186
  rootEleNode &&
188
187
  rootEleNode.classList.contains('over-hidden') &&
189
188
  rootEleNode.classList.remove('over-hidden');
190
189
  },
191
190
  isAppHomeForMarketPage || _getDirectionState ? 0 : 200,
192
191
  );
193
192
  }
194
193
  }
195
194
  touchType = TouchType.START,
196
195
  stopTouchDocumentScrollState = false,
197
196
  isJdApp &&
198
197
  touchType !== TouchType.MOVE &&
199
198
  isAndroidDevice &&
200
199
  window?.JdAndroid &&
201
200
  window?.JdAndroid?.requestEvent &&
202
201
  window.JdAndroid.requestEvent(touchType === TouchType.START);
203
202
  console.log(
204
203
  '对外提供阻止安卓横滑方法,true-禁止外部事件H5可滑动,false-外部拦截h5事件,当前touchType为',
205
204
  touchType,
206
205
  '当前非move触发requestEvent状态为',
207
206
  touchType === TouchType.START,
208
207
  '当前stopTouchDocumentScrollState为',
209
208
  stopTouchDocumentScrollState,
210
209
  );
211
210
  e,
212
211
  touchType = TouchType.START,
213
212
  stopTouchDocumentScrollState = false,
214
213
  e && e.stopPropagation();
215
214
  console.log(
216
215
  '对外提供阻止ios横滑方法,当前touchType为',
217
216
  touchType,
218
217
  '当前stopTouchDocumentScrollState为',
219
218
  stopTouchDocumentScrollState,
220
219
  );
221
220
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage?.({
222
221
  method: 'callRouterModuleWithParams',
223
222
  params: {
224
223
  routerURL: 'router://JDShopModule/processShoph5SlideState',
225
224
  routerParam: {
226
225
  slideDirection: 'horizontal',
227
226
  state: touchType,
228
227
  },
229
228
  callBackId: new Date().getTime(),
230
229
  },
231
230
  });
232
231
  if (isH5AndJdShopView) {
233
232
  return CHANNEL_TYPE[currentChannel] || CHANNEL_TYPE[JDShopViewBusinessPathType.HOME];
234
233
  }
235
234
  return null;
236
235
  isH5 &&
237
236
  isJdApp &&
238
237
  ['/app/home', '/app/classify', '/member/shopcard', '/favorite/home'].includes(urlPathname);
239
238
  isH5 && isJdApp && !['/app/home'].includes(urlPathname);
240
239
  ['/app/home'].includes(urlPathname) &&
241
240
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_PROMOTION &&
242
241
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_MEMBER;
243
242
  isAppHomePage && parseQueryUrlObj['source'] === 'app-marketing';
244
243
  isH5 &&
245
244
  isAppHomePage &&
246
245
  versionCompare(jdAppVersion?.full ? jdAppVersion.full : '', isH5AndJdShopViewH5ScrollVersion) >=
247
246
  0;
248
247
  return isJdApp ? versionCompare(nowVersion, compareVersion) : -2;
249
248
  getSgmReadyPromise()
250
249
  .then(() => {
251
250
  if (
252
251
  customObj.hasOwnProperty('code') &&
253
252
  customObj.code.indexOf(NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG) !== -1
254
253
  ) {
255
254
  const originCode = customObj.code.substring(
256
255
  NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG.length,
257
256
  customObj.code.length,
258
257
  );
259
258
  customObj['code'] = getSgmCustomCode(handleSgmCodeTaroVersion(originCode));
260
259
  }
261
260
  const getCustomObj = {
262
261
  type: 1,
263
262
  code: 'all',
264
263
  cost1: 1,
265
264
  ...customObj,
266
265
  };
267
266
  try {
268
267
  window.__sgm__.custom(getCustomObj, '9HwAEg@fTtWBB3EnwA5VgLT');
269
268
  } catch (e) {
270
269
  console.log('当前sgm上报异常, 原始数据为', JSON.stringify(customObj));
271
270
  }
272
271
  })
273
272
  .catch(() => {
274
273
  console.error('当前页面sgm加载异常,无法进行异常上报, 原始数据为', JSON.stringify(customObj));
275
274
  });
276
275
  try {
277
276
  await getNewDraSdkReadyPromise();
278
277
  const draBurypointFlag = name ?? DraBuryPointFlags.BUSINESS;
279
278
  const commonObj = {
280
279
  shopId: `${global.info.queryInfo.shopId || ''}`,
281
280
  venderId: `${global.info.queryInfo.venderId || ''}`,
282
281
  taroRenderVersion: window?.taroRenderVersion,
283
282
  environmentType: getEnvironmentType(),
284
283
  pageType: getPageType(),
285
284
  };
286
285
  try {
287
286
  window.dra.sendCustomEvent(
288
287
  {
289
288
  name: draBurypointFlag,
290
289
  metrics: {
291
290
  timeStamp: Date.now(),
292
291
  ...customMetricsObj,
293
292
  },
294
293
  context: {
295
294
  ...commonObj,
296
295
  ...customContextObj,
297
296
  },
298
297
  },
299
298
  true,
300
299
  );
301
300
  } catch (e) {
302
301
  console.error(
303
302
  '当前新版烛龙sdk上报异常, 原始数据为',
304
303
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
305
304
  'e',
306
305
  e,
307
306
  );
308
307
  }
309
308
  } catch (e) {
310
309
  console.error(
311
310
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
312
311
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
313
312
  'e',
314
313
  e,
315
314
  );
316
315
  }
317
316
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.REMOTE);
318
317
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.INTERFACE);
319
318
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.BUSINESS);
320
319
  if (isJdAndAndroidDevice && typeof displayObj === 'object') {
321
320
  const deviceRatio = window?.devicePixelRatio ?? 2;
322
321
  Object.keys(displayObj).forEach((key) => {
323
322
  if (key === 'nativeHeaderHeight') {
324
323
  displayObj[key] = Math.ceil(displayObj[key] / (deviceRatio * deviceRatio) - 2);
325
324
  } else {
326
325
  displayObj[key] = Math.ceil(displayObj[key] / deviceRatio);
327
326
  }
328
327
  });
329
328
  }
330
329
  return displayObj;
331
330
  isJdAndAndroidDevice && /TBS\/\d+/.test(window?.navigator?.userAgent);
332
331
  rootEleNode &&
333
332
  !rootEleNode.classList.contains('d-shop-lang-for-en') &&
334
333
  rootEleNode.classList.add('d-shop-lang-for-en');
335
334
  customContextObj = {},
336
335
  customMetricsObj = {},
337
336
  name?,
338
337
  try {
339
338
  const draBurypointFlag = name ?? DraBuryPointFlags.DECOSDM;
340
339
  try {
341
340
  let dra = null;
342
341
  const iframe = window?.top?.document?.getElementsByTagName('iframe')[0];
343
342
  if (iframe && iframe.contentWindow) {
344
343
  dra = iframe.contentWindow?.dra;
345
344
  }
346
345
  if (window.dra) {
347
346
  dra = window.dra;
348
347
  }
349
348
  dra &&
350
349
  dra.sendCustomEvent(
351
350
  {
352
351
  name: draBurypointFlag,
353
352
  metrics: {
354
353
  timeStamp: Date.now(),
355
354
  },
356
355
  context: {
357
356
  ...customContextObj,
358
357
  },
359
358
  },
360
359
  true,
361
360
  );
362
361
  } catch (e) {
363
362
  console.error(
364
363
  '当前新版烛龙sdk上报异常, 原始数据为',
365
364
  JSON.stringify({ ...customContextObj }),
366
365
  'e',
367
366
  e,
368
367
  );
369
368
  }
370
369
  } catch (e) {
371
370
  console.error(
372
371
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
373
372
  JSON.stringify({ ...customContextObj }),
374
373
  'e',
375
374
  e,
376
375
  );
377
376
  }
377
+ import {
378
378
  isApp,
379
379
  isIOS,
380
380
  getAppVersion,
381
381
  version,
382
382
  getUUID,
383
383
  getUrlQuery,
384
384
  assign,
385
385
  isString,
386
386
  isObject,
387
387
  serialize,
388
388
  isAndroid,
389
389
  versionCompare,
390
390
  isIPad,
391
391
  isTablet,
392
392
  CHANNEL_TYPE,
393
393
  JDShopViewBusinessPathType,
394
394
  SECTION_HOME_TAB_NAME_TYPE,
395
395
  SECTION_HOME_TAB_TYPE,
396
396
  DraBuryPointFlags,
397
397
  MPAAS_CONFIG_APP_VERSION,
398
398
  new Promise((resolve, reject) => {
399
399
  if (window?.__sgm__) {
400
400
  resolve(true);
401
401
  } else {
402
402
  if (isSgmReadyError) {
403
403
  console.log('当前sgm初始化失败');
404
404
  reject(false);
405
405
  } else {
406
406
  ready('__sgm__', 2000)
407
407
  .then(() => {
408
408
  isSgmReadyError = false;
409
409
  console.log('当前sgm初始化成功');
410
410
  resolve(true);
411
411
  })
412
412
  .catch(() => {
413
413
  isSgmReadyError = true;
414
414
  console.log('当前sgm初始化失败');
415
415
  reject(false);
416
416
  });
417
417
  }
418
418
  }
419
419
  });
420
420
  console.log(message);
421
421
  reject(new Error(message));
422
422
  return ready('dra', 2000)
423
423
  .then(() => {
424
424
  isNewDraSdkReadyError = false;
425
425
  console.log('当前新版烛龙sdk初始化成功');
426
426
  return true;
427
427
  })
428
428
  .catch(() => {
429
429
  isNewDraSdkReadyError = true;
430
430
  throw new Error('当前新版烛龙sdk初始化失败');
431
431
  });
432
432
  return new Promise((resolve, reject) => {
433
433
  if (window?.dra) {
434
434
  resolve(true);
435
435
  } else if (isNewDraSdkReadyError) {
436
436
  logAndReject('当前新版烛龙sdk初始化失败', reject);
437
437
  } else {
438
438
  initializeDraSdk()
439
439
  .then(resolve)
440
440
  .catch((error) => logAndReject(error.message, reject));
441
441
  }
442
442
  });
443
443
  if (window.screen?.orientation?.type) {
444
444
  console.info(
445
445
  '通过window.screen?.orientation?.type方式获取当前pad屏幕是否是横屏',
446
446
  window.screen?.orientation?.type,
447
447
  '测试低版本通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
448
448
  window?.orientation,
449
449
  );
450
450
  return /landscape/i.test(window.screen.orientation.type);
451
451
  } else if (window?.orientation) {
452
452
  console.info(
453
453
  '通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
454
454
  window?.orientation,
455
455
  );
456
456
  return [90, -90].includes(window?.orientation);
457
457
  } else {
458
458
  console.info(
459
459
  '通过window.matchMedia((orientation: landscape))?.matches方式获取当前pad屏幕是否是横屏',
460
460
  window.matchMedia('(orientation: landscape)')?.matches,
461
461
  );
462
462
  return window.matchMedia('(orientation: landscape)')?.matches;
463
463
  }
464
464
  try {
465
465
  return JSON.parse(decodeURIComponent(getUrlQuery('cookie')));
466
466
  } catch (e) {
467
467
  return {};
468
468
  }
469
469
  'harmony' === (userAgent.split(';')[1] || '').toLowerCase() || /arkweb/i.test(userAgent);
470
470
  window.shopGlobalSwitch?.isH5AndJdShopViewH5ScrollVersion || '';
471
471
  !!document.getElementById('mallType') &&
472
472
  !!document.getElementById('pageInstance_id') &&
473
473
  !!document.getElementById('pageInstance_appId');
474
474
  isTjScence &&
475
475
  isWxMiniH5View &&
476
476
  (urlCookie['wxapp_type'] == '2' ||
477
477
  cookie.get('wxapp_type') == '2' ||
478
478
  parseQueryUrlObj['tjChannel'] === 'jxxcx');
479
479
  isTjScence && isWxMiniH5View && parseQueryUrlObj['sourceApp'] === 'haowujie';
480
480
  isTjScence &&
481
481
  (parseQueryUrlObj['appCode'] === 'ms27cba806' ||
482
482
  document.referrer?.match(/(?:https?:)?\/\/(?:kpl\.m|css|cs)\.jd\.com/i)?.length ||
483
483
  (parseQueryUrlObj['sourceApp'] == 'jsb-m' && parseQueryUrlObj['appCode'] === '') ||
484
484
  parseQueryUrlObj['tjChannel'] === 'tjm');
485
485
  if (isH5AdnJxMini) {
486
486
  return 'jxxcx';
487
487
  } else if (isTJApp) {
488
488
  return 'tjapp';
489
489
  } else if (isTjM) {
490
490
  return 'tjm';
491
491
  } else if (isTjJxM) {
492
492
  return 'jxh5';
493
493
  }
494
494
  return '';
495
495
  START: 'start',
496
496
  MOVE: 'move',
497
497
  END: 'end',
498
498
  x: 0,
499
499
  y: 0,
500
500
  const startX = startPos.x;
501
501
  const startY = startPos.y;
502
502
  const endX = touchEvent.clientX;
503
503
  const endY = touchEvent.clientY;
504
504
  const dy = startY - endY;
505
505
  const dx = endX - startX;
506
506
  let result = 0;
507
507
  if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
508
508
  return result;
509
509
  }
510
510
  const angle = (Math.atan2(dy, dx) * 180) / Math.PI;
511
511
  if (angle >= -45 && angle < 45) {
512
512
  result = 4;
513
513
  } else if (angle >= 45 && angle < 135) {
514
514
  result = 1;
515
515
  } else if (angle >= -135 && angle < -45) {
516
516
  result = 2;
517
517
  } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
518
518
  result = 3;
519
519
  }
520
520
  return result;
521
521
  e: Event,
522
522
  touchType = TouchType.START,
523
523
  stopTouchDocumentScrollState = false,
524
524
  if (isJdApp && e) {
525
525
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0];
526
526
  let _touchState = touchType;
527
527
  let _getDirectionState = false;
528
528
  if (touchType === TouchType.START) {
529
529
  StopNativeScrollEventPos.x = touchEvent.clientX;
530
530
  StopNativeScrollEventPos.y = touchEvent.clientY;
531
531
  } else if (touchType === TouchType.MOVE) {
532
532
  _getDirectionState = [1, 2].includes(
533
533
  touchMoveGetSlideDirection(StopNativeScrollEventPos, touchEvent),
534
534
  );
535
535
  if (_getDirectionState) {
536
536
  _touchState = TouchType.END;
537
537
  }
538
538
  console.log(
539
539
  '对外提供阻止横滑方法,当前touchType为move,设定1、2向上或向下方向,当前计算后的滑动是否为纵向',
540
540
  _getDirectionState,
541
541
  );
542
542
  } else if (touchType === TouchType.END) {
543
543
  StopNativeScrollEventPos.x = 0;
544
544
  StopNativeScrollEventPos.y = 0;
545
545
  }
546
546
  isIosDevice
547
547
  ? iosDeviceStopNativeScrollEvent(e, _touchState, stopTouchDocumentScrollState)
548
548
  : androidDeviceStopNativeScrollEvent(_touchState, stopTouchDocumentScrollState);
549
549
  if (
550
550
  !isAppHomeForMarketPage &&
551
551
  stopTouchDocumentScrollState &&
552
552
  _touchState === TouchType.START
553
553
  ) {
554
554
  rootEleNode && rootEleNode.classList.add('over-hidden');
555
555
  }
556
556
  if (_touchState === TouchType.MOVE && _getDirectionState) {
557
557
  rootEleNode &&
558
558
  rootEleNode.classList.contains('over-hidden') &&
559
559
  rootEleNode.classList.remove('over-hidden');
560
560
  } else if (_touchState === TouchType.END) {
561
561
  setTimeout(
562
562
  () => {
563
563
  rootEleNode &&
564
564
  rootEleNode.classList.contains('over-hidden') &&
565
565
  rootEleNode.classList.remove('over-hidden');
566
566
  },
567
567
  isAppHomeForMarketPage || _getDirectionState ? 0 : 200,
568
568
  );
569
569
  }
570
570
  }
571
571
  touchType = TouchType.START,
572
572
  stopTouchDocumentScrollState = false,
573
573
  isJdApp &&
574
574
  touchType !== TouchType.MOVE &&
575
575
  isAndroidDevice &&
576
576
  window?.JdAndroid &&
577
577
  window?.JdAndroid?.requestEvent &&
578
578
  window.JdAndroid.requestEvent(touchType === TouchType.START);
579
579
  console.log(
580
580
  '对外提供阻止安卓横滑方法,true-禁止外部事件H5可滑动,false-外部拦截h5事件,当前touchType为',
581
581
  touchType,
582
582
  '当前非move触发requestEvent状态为',
583
583
  touchType === TouchType.START,
584
584
  '当前stopTouchDocumentScrollState为',
585
585
  stopTouchDocumentScrollState,
586
586
  );
587
587
  e,
588
588
  touchType = TouchType.START,
589
589
  stopTouchDocumentScrollState = false,
590
590
  e && e.stopPropagation();
591
591
  console.log(
592
592
  '对外提供阻止ios横滑方法,当前touchType为',
593
593
  touchType,
594
594
  '当前stopTouchDocumentScrollState为',
595
595
  stopTouchDocumentScrollState,
596
596
  );
597
597
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage?.({
598
598
  method: 'callRouterModuleWithParams',
599
599
  params: {
600
600
  routerURL: 'router://JDShopModule/processShoph5SlideState',
601
601
  routerParam: {
602
602
  slideDirection: 'horizontal',
603
603
  state: touchType,
604
604
  },
605
605
  callBackId: new Date().getTime(),
606
606
  },
607
607
  });
608
608
  if (isH5AndJdShopView) {
609
609
  return CHANNEL_TYPE[currentChannel] || CHANNEL_TYPE[JDShopViewBusinessPathType.HOME];
610
610
  }
611
611
  return null;
612
612
  isH5 &&
613
613
  isJdApp &&
614
614
  ['/app/home', '/app/classify', '/member/shopcard', '/favorite/home'].includes(urlPathname);
615
615
  isH5 && isJdApp && !['/app/home'].includes(urlPathname);
616
616
  ['/app/home'].includes(urlPathname) &&
617
617
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_PROMOTION &&
618
618
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_MEMBER;
619
619
  isAppHomePage && parseQueryUrlObj['source'] === 'app-marketing';
620
620
  isH5 &&
621
621
  isAppHomePage &&
622
622
  versionCompare(jdAppVersion?.full ? jdAppVersion.full : '', isH5AndJdShopViewH5ScrollVersion) >=
623
623
  0;
624
624
  return isJdApp ? versionCompare(nowVersion, compareVersion) : -2;
625
625
  getSgmReadyPromise()
626
626
  .then(() => {
627
627
  if (
628
628
  customObj.hasOwnProperty('code') &&
629
629
  customObj.code.indexOf(NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG) !== -1
630
630
  ) {
631
631
  const originCode = customObj.code.substring(
632
632
  NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG.length,
633
633
  customObj.code.length,
634
634
  );
635
635
  customObj['code'] = getSgmCustomCode(handleSgmCodeTaroVersion(originCode));
636
636
  }
637
637
  const getCustomObj = {
638
638
  type: 1,
639
639
  code: 'all',
640
640
  cost1: 1,
641
641
  ...customObj,
642
642
  };
643
643
  try {
644
644
  window.__sgm__.custom(getCustomObj, '9HwAEg@fTtWBB3EnwA5VgLT');
645
645
  } catch (e) {
646
646
  console.log('当前sgm上报异常, 原始数据为', JSON.stringify(customObj));
647
647
  }
648
648
  })
649
649
  .catch(() => {
650
650
  console.error('当前页面sgm加载异常,无法进行异常上报, 原始数据为', JSON.stringify(customObj));
651
651
  });
652
652
  try {
653
653
  await getNewDraSdkReadyPromise();
654
654
  const draBurypointFlag = name ?? DraBuryPointFlags.BUSINESS;
655
655
  const commonObj = {
656
656
  shopId: `${global.info.queryInfo.shopId || ''}`,
657
657
  venderId: `${global.info.queryInfo.venderId || ''}`,
658
658
  taroRenderVersion: window?.taroRenderVersion,
659
659
  environmentType: getEnvironmentType(),
660
660
  pageType: getPageType(),
661
661
  };
662
662
  try {
663
663
  window.dra.sendCustomEvent(
664
664
  {
665
665
  name: draBurypointFlag,
666
666
  metrics: {
667
667
  timeStamp: Date.now(),
668
668
  ...customMetricsObj,
669
669
  },
670
670
  context: {
671
671
  ...commonObj,
672
672
  ...customContextObj,
673
673
  },
674
674
  },
675
675
  true,
676
676
  );
677
677
  } catch (e) {
678
678
  console.error(
679
679
  '当前新版烛龙sdk上报异常, 原始数据为',
680
680
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
681
681
  'e',
682
682
  e,
683
683
  );
684
684
  }
685
685
  } catch (e) {
686
686
  console.error(
687
687
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
688
688
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
689
689
  'e',
690
690
  e,
691
691
  );
692
692
  }
693
693
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.REMOTE);
694
694
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.INTERFACE);
695
695
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.BUSINESS);
696
696
  if (isJdAndAndroidDevice && typeof displayObj === 'object') {
697
697
  const deviceRatio = window?.devicePixelRatio ?? 2;
698
698
  Object.keys(displayObj).forEach((key) => {
699
699
  if (key === 'nativeHeaderHeight') {
700
700
  displayObj[key] = Math.ceil(displayObj[key] / (deviceRatio * deviceRatio) - 2);
701
701
  } else {
702
702
  displayObj[key] = Math.ceil(displayObj[key] / deviceRatio);
703
703
  }
704
704
  });
705
705
  }
706
706
  return displayObj;
707
707
  isJdAndAndroidDevice && /TBS\/\d+/.test(window?.navigator?.userAgent);
708
708
  rootEleNode &&
709
709
  !rootEleNode.classList.contains('d-shop-lang-for-en') &&
710
710
  rootEleNode.classList.add('d-shop-lang-for-en');
711
711
  customContextObj = {},
712
712
  customMetricsObj = {},
713
713
  name?,
714
714
  try {
715
715
  const draBurypointFlag = name ?? DraBuryPointFlags.DECOSDM;
716
716
  try {
717
717
  let dra = null;
718
718
  const iframe = window?.top?.document?.getElementsByTagName('iframe')[0];
719
719
  if (iframe && iframe.contentWindow) {
720
720
  dra = iframe.contentWindow?.dra;
721
721
  }
722
722
  if (window.dra) {
723
723
  dra = window.dra;
724
724
  }
725
725
  dra &&
726
726
  dra.sendCustomEvent(
727
727
  {
728
728
  name: draBurypointFlag,
729
729
  metrics: {
730
730
  timeStamp: Date.now(),
731
731
  },
732
732
  context: {
733
733
  ...customContextObj,
734
734
  },
735
735
  },
736
736
  true,
737
737
  );
738
738
  } catch (e) {
739
739
  console.error(
740
740
  '当前新版烛龙sdk上报异常, 原始数据为',
741
741
  JSON.stringify({ ...customContextObj }),
742
742
  'e',
743
743
  e,
744
744
  );
745
745
  }
746
746
  } catch (e) {
747
747
  console.error(
748
748
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
749
749
  JSON.stringify({ ...customContextObj }),
750
750
  'e',
751
751
  e,
752
752
  );
753
753
  }