@conecli/cone-render 0.9.1-shop2.36 → 0.9.1-shop2.37

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