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