@conecli/cone-render 0.8.21 → 0.8.22-beta.1

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 Taro from '@tarojs/taro'
2
1
  routerInfo: {
3
2
  params: {},
4
3
  },
5
4
  nativeEvent: null,
6
5
  logPageParamStr: '',
7
6
  implements JumpEventReportInterFace.JumpEventReportInit
8
7
  public jingGouMiniState: boolean
9
8
  public logPageId: string
10
9
  public logPageParamStr: string
11
10
  public nativeEvent: any
12
11
  public routerInfo: JumpEventReportInterFace.RouterInfo
13
12
  public logPname: LogPnameInfo
14
13
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath
15
14
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl
16
15
  public sectionExposureInfo: object
17
16
  constructor(opt = {}) {
18
17
  this.logPageId = LogPageIdInfo.APP
19
18
  this.jingGouMiniState = false
20
19
  this.jumpMiniPath = JumpMiniPath
21
20
  this.jumpWebUrl = JumpWebUrl
22
21
  this.sectionExposureInfo = {}
23
22
  this.getConfig(opt)
24
23
  }
25
24
  getConfig(opt) {
26
25
  return Object.assign(this, {}, defaultConfig, opt)
27
26
  }
28
27
 
29
28
  updateInfo(
30
29
  routerInfo,
31
30
  logPname = LogPnameInfo.HOME,
32
31
  pageId = LogPageIdInfo.APP,
33
32
  ) {
34
33
  this.routerInfo = routerInfo
35
34
  this.logPname = logPname
36
35
  this.logPageId = pageId
37
36
  }
38
37
  reportInfoPv(_pageId, _opt = {}) {}
39
38
 
40
39
  getShopIdOrVenderIdParams(
41
40
  params: JumpEventReportInterFace.ShopIdsInfo = {},
42
41
  ): JumpEventReportInterFace.ShopIdsInfo {
43
42
  const setParams = {}
44
43
  params.shopId && (setParams['shopId'] = `${params.shopId}`)
45
44
  params.venderId && (setParams['venderId'] = `${params.venderId}`)
46
45
  return setParams
47
46
  }
48
47
 
49
48
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
50
49
  let setParams = this.getShopIdOrVenderIdParams(params)
51
50
  setParams = {
52
51
  ...params,
53
52
  ...setParams,
54
53
  }
55
54
  return setParams
56
55
  }
57
56
 
58
57
  jdJumpToShopLight(shopInfo) {
59
58
  this.jdNavigateToNative(
60
59
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
61
60
  this.getShopIdOrVenderIdParams(shopInfo),
62
61
  )}`,
63
62
  {
64
63
  ...shopInfo,
65
64
  },
66
65
  )
67
66
  }
68
67
 
69
68
  jdJumpToProduct(skuIds, logEventInfo) {
70
69
  skuIds = skuIds.toString().trim()
71
70
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
72
71
  this.jdNavigateToNative(
73
72
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
74
73
  logEventInfo,
75
74
  )
76
75
  }
77
76
 
78
77
  jdJumpToFlashSaleTab(_logEventInfo) {
79
78
  console.log('跳转闪购', _logEventInfo)
80
79
  }
81
80
 
82
81
 
83
82
  jdJumpToShopMemberInfo(logEventInfo) {
84
83
  console.log('跳转修改会员信息页', logEventInfo)
85
84
  }
86
85
 
87
86
  jdJumpToShopMemberPointDetail(logEventInfo) {
88
87
  const venderId = global.info.queryInfo.venderId
89
88
  const shopId = global.info.queryInfo.shopId
90
89
  this.jdJumpToWeb(
91
90
  `${this.jumpWebUrl.shopMemberPointDetail}?venderId=${venderId}&shopId=${shopId}`,
92
91
  logEventInfo,
93
92
  )
94
93
  }
95
94
 
96
95
  jdJumpToShopMemberBenefit(logEventInfo) {
97
96
  const venderId = global.info.queryInfo.venderId
98
97
  const shopId = global.info.queryInfo.shopId
99
98
  this.jdJumpToWeb(
100
99
  `${this.jumpWebUrl.shopMemberBenefit}?venderId=${venderId}&shopId=${shopId}`,
101
100
  logEventInfo,
102
101
  )
103
102
  }
104
103
 
105
104
  jdJumpToShopMemberRule(logEventInfo) {
106
105
  const venderId = global.info.queryInfo.venderId
107
106
  const shopId = global.info.queryInfo.shopId
108
107
  console.log('会员规则页h5 global.info', global.info)
109
108
  this.jdJumpToWeb(
110
109
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
111
110
  logEventInfo,
112
111
  )
113
112
  }
114
113
 
115
114
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
116
115
  const venderId = global.info.queryInfo.venderId
117
116
  const shopId = global.info.queryInfo.shopId
118
117
  console.log('注销会员页h5 global.info', global.info)
119
118
  this.jdJumpToWeb(
120
119
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
121
120
  logEventInfo,
122
121
  )
123
122
  }
124
123
 
125
124
  jdJumpToShopMemberPointExchange(
126
125
  venderType,
127
126
  levelZeroMenuUrl,
128
127
  logEventInfo,
129
128
  ) {
130
129
  const venderId = global.info.queryInfo.venderId
131
130
  const shopId = global.info.queryInfo.shopId
132
131
  const channel = CHANNEL.h5
133
132
  this.jdJumpToWeb(
134
133
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
135
134
  logEventInfo,
136
135
  )
137
136
  }
138
137
 
139
138
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
140
139
  const venderId = global.info.queryInfo.venderId
141
140
  const shopId = global.info.queryInfo.shopId
142
141
  this.jdJumpToWeb(
143
142
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}`,
144
143
  logEventInfo,
145
144
  )
146
145
  }
147
146
 
148
147
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
149
148
  const venderId = global.info.queryInfo.venderId
150
149
  const shopId = global.info.queryInfo.shopId
151
150
  this.jdJumpToWeb(
152
151
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
153
152
  logEventInfo,
154
153
  )
155
154
  }
156
155
 
157
156
  jdJumpToBeanDetail(logEventInfo) {
158
157
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail)
159
158
  this.jdJumpToWeb(
160
159
  `${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`,
161
160
  logEventInfo,
162
161
  )
163
162
  }
164
163
 
165
164
  jdJumpToMyRedEnvelope(logEventInfo) {
166
165
  console.log('跳转红包页', logEventInfo)
167
166
  }
168
167
 
169
168
  jdJumpToMyCoupon(logEventInfo) {
170
169
  console.log('跳转优惠券页', logEventInfo)
171
170
  }
172
171
 
173
172
 
174
173
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
175
174
  this.jdJumpToWeb(
176
175
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
177
176
  logEventInfo,
178
177
  )
179
178
  }
180
179
 
181
180
  jdJumpToAppHome(logEventInfo) {
182
181
  this.jdJumpToWeb(
183
182
  `${this.jumpWebUrl.mobileHome}?originReferer=shopx`,
184
183
  logEventInfo,
185
184
  )
186
185
  }
187
186
 
188
187
  jdJumpToShopSearch(queryParams) {
189
188
  const { shopId, categoryId, keyword, pageId, description, shopName } =
190
189
  queryParams
191
190
  const cateId = categoryId ? `&cateId=${categoryId}` : ''
192
191
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
193
192
  const addPageId = pageId ? `&pageId=${pageId}` : ''
194
193
  const searchDes = description ? `&description=${description}` : ''
195
194
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
196
195
  const searchType = categoryId ? 5 : keyword ? 4 : 3
197
196
  this.jdJumpToWeb(
198
197
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
199
198
  queryParams,
200
199
  )
201
200
  }
202
201
 
203
202
  jdJumpToOrderList() {
204
203
  console.warn(
205
204
  '触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现',
206
205
  )
207
206
  }
208
207
 
209
208
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
210
209
  this.jdJumpToWeb(
211
210
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
212
211
  logEventInfo,
213
212
  )
214
213
  }
215
214
 
216
215
  jdJumpToWeb(
217
216
  spUrl,
218
217
  logEventInfo,
219
218
  successBack?: Function | undefined,
220
219
  failBack?: Function | undefined,
221
220
  ) {
222
221
  this.jdNavigateToNative(
223
222
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
224
223
  {
225
224
  ...logEventInfo,
226
225
  },
227
226
  successBack,
228
227
  failBack,
229
228
  )
230
229
  }
231
230
 
232
231
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
233
232
  if (typeof urlObj === 'object') {
234
233
  this.jdJumpToWeb(
235
234
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
236
235
  urlObj,
237
236
  )}`,
238
237
  { logEventInfo },
239
238
  )
240
239
  } else {
241
240
  const getShopUgcParams = this.jdOpenAppParams(urlObj)
242
241
  console.log('getShopUgcParams=====', getShopUgcParams)
243
242
  if (getShopUgcParams) {
244
243
  getShopUgcParams['category'] && delete getShopUgcParams['category']
245
244
  getShopUgcParams['des'] && delete getShopUgcParams['des']
246
245
  this.jdJumpToWeb(
247
246
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
248
247
  getShopUgcParams as Object,
249
248
  )}`,
250
249
  { logEventInfo },
251
250
  )
252
251
  }
253
252
  }
254
253
  }
255
254
 
256
255
  jdJumpToShopActivity(shopInfo) {
257
256
  const getParams = Object.assign(
258
257
  {},
259
258
  {
260
259
  category: 'jump',
261
260
  des: 'jshopActivity',
262
261
  shopId: global.info.queryInfo.shopId,
263
262
  venderId: global.info.queryInfo.venderId,
264
263
  },
265
264
  shopInfo,
266
265
  )
267
266
  getParams['projectId'] &&
268
267
  (getParams['projectId'] = `${getParams['projectId']}`)
269
268
  }
270
269
 
271
270
  jdJumpToShopMember(shopInfo) {
272
271
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
273
272
  this.jdJumpToWeb(
274
273
  `${this.jumpWebUrl.wqShopMember}?${objectToUrlEncode(getShopInfo)}`,
275
274
  shopInfo,
276
275
  )
277
276
  }
278
277
 
279
278
  jdJumpToShopMemberCard(shopInfo) {
280
279
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
281
280
  this.jdJumpToWeb(
282
281
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
283
282
  shopInfo,
284
283
  )
285
284
  }
286
285
 
287
286
  jdJumpToTotalPromotion(shopInfo) {
288
287
  const { url, logEventInfo } = shopInfo
289
288
  if (this.isOpenJdAppUrl(url)) {
290
289
  const getOpenAppParams: any = this.jdOpenAppParams(url)
291
290
  if (getOpenAppParams) {
292
291
  if (getOpenAppParams?.activityId) {
293
292
  this.jdJumpToWeb(
294
293
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
295
294
  shopInfo,
296
295
  )
297
296
  }
298
297
  }
299
298
  } else {
300
299
  this.jdJumpToWeb(url, logEventInfo)
301
300
  }
302
301
  }
303
302
 
304
303
  jdJumpToDongDongChat(paramInfo) {
305
304
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
306
305
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
307
306
  this.jdJumpToWeb(dongdongUrl, otherInfo)
308
307
  }
309
308
 
310
309
  jdJumpToShopDetail(shopInfo) {
311
310
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
312
311
  this.jdJumpToWeb(
313
312
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
314
313
  shopInfo,
315
314
  )
316
315
  }
317
316
 
318
317
  jdJumpToMiniProgram({
319
318
  appId,
320
319
  path,
321
320
  param = {},
322
321
  }: JumpEventReportInterFace.LinkMiniParams) {
323
322
  const pageName = param['pageType'] || 'home'
324
323
  path = `pages/${pageName}/index`
325
324
  if (appId === global.info.pageInfo?.appId) {
326
325
  Taro.navigateTo({
327
326
  url: `/${path}?${objectToUrlEncode(param)}`,
328
327
  }).catch((err) => {
329
328
  console.warn('跳转小程序页面错误:', err)
330
329
  })
331
330
  } else {
332
331
  console.log('一个小程序跳转到另一个小程序暂无此业务')
333
332
  }
334
333
  }
335
334
 
336
335
  jdJumpToAppMiniProgram(
337
336
  path: string,
338
337
  param = {},
339
338
  successBack?: Function,
340
339
  failBack?: Function,
341
340
  ) {
342
341
  this.jdNavigateToNative(path, param, successBack, failBack)
343
342
  }
344
343
 
345
344
  jdJumpConfigUrl(detail, logEventInfo = {}) {
346
345
  const { configDataType, configDataValue } = detail
347
346
  switch (configDataType) {
348
347
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
349
348
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
350
349
  break
351
350
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
352
351
  this.jdJumpToWeb(
353
352
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
354
353
  logEventInfo,
355
354
  )
356
355
  break
357
356
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
358
357
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
359
358
  const getShopSearchParams = this.jdOpenAppParams(
360
359
  configDataValue.clickUrl,
361
360
  )
362
361
  getShopSearchParams &&
363
362
  this.jdJumpToShopSearch(
364
363
  Object.assign({}, getShopSearchParams, {
365
364
  logEventInfo,
366
365
  }),
367
366
  )
368
367
  } else {
369
368
  this.jdJumpToShopSearch(
370
369
  configDataValue['cid']
371
370
  ? Object.assign(
372
371
  {},
373
372
  {
374
373
  shopId: global.info.queryInfo.shopId,
375
374
  categoryId: configDataValue.cid,
376
375
  logEventInfo,
377
376
  },
378
377
  )
379
378
  : {
380
379
  shopId: global.info.queryInfo.shopId,
381
380
  logEventInfo,
382
381
  },
383
382
  )
384
383
  }
385
384
  break
386
385
  case LinkConfigType.CONFIG_TYPE_MEMBER:
387
386
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
388
387
  const getShopMemberParams = this.jdOpenAppParams(
389
388
  configDataValue.clickUrl,
390
389
  )
391
390
  getShopMemberParams &&
392
391
  this.jdJumpToShopMember(
393
392
  Object.assign({}, getShopMemberParams, {
394
393
  logEventInfo,
395
394
  }),
396
395
  )
397
396
  } else {
398
397
  this.jdJumpToShopMember({
399
398
  shopId: global.info.queryInfo.shopId,
400
399
  venderId: configDataValue.shopDetail,
401
400
  logEventInfo,
402
401
  })
403
402
  }
404
403
  break
405
404
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
406
405
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
407
406
  const getShopActivityParams = this.jdOpenAppParams(
408
407
  configDataValue.clickUrl,
409
408
  )
410
409
  getShopActivityParams &&
411
410
  this.jdJumpToShopActivity(
412
411
  Object.assign({}, getShopActivityParams, {
413
412
  logEventInfo,
414
413
  }),
415
414
  )
416
415
  } else if (configDataValue['projectId']) {
417
416
  this.jdJumpToShopActivity({
418
417
  projectId: configDataValue['projectId'],
419
418
  configDataValue,
420
419
  logEventInfo,
421
420
  })
422
421
  }
423
422
  break
424
423
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
425
424
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
426
425
  const _url = configDataValue.linkUrl
427
426
  if (
428
427
  _url.indexOf('to=') === -1 &&
429
428
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
430
429
  ) {
431
430
  const _shopId = _url.match(/\d+/g)[0]
432
431
  this.jdJumpToShopHome({
433
432
  shopId: `${_shopId}`,
434
433
  logEventInfo,
435
434
  })
436
435
  } else if (this.isOpenJdAppUrl(_url)) {
437
436
  const getOpenAppParams = this.jdOpenAppParams(_url)
438
437
  console.log('获取解析后的参数结果', getOpenAppParams)
439
438
  if (getOpenAppParams) {
440
439
  isJdApp
441
440
  ? this.jdNavigateToNative(
442
441
  Object.assign({}, getOpenAppParams, {
443
442
  logEventInfo,
444
443
  }),
445
444
  )
446
445
  : this.jdNavigateToNative(
447
446
  '',
448
447
  Object.assign({}, getOpenAppParams, {
449
448
  logEventInfo,
450
449
  }),
451
450
  )
452
451
  } else {
453
452
  this.jdNavigateToNative(
454
453
  '',
455
454
  Object.assign({}, getOpenAppParams, {
456
455
  logEventInfo,
457
456
  }),
458
457
  )
459
458
  }
460
459
  } else {
461
460
  this.jdJumpToWeb(_url, logEventInfo)
462
461
  }
463
462
  break
464
463
  }
465
464
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
466
465
  this.jdJumpToShopDetail({
467
466
  venderId: global.info.queryInfo.venderId,
468
467
  shopId: global.info.queryInfo.shopId,
469
468
  logEventInfo,
470
469
  })
471
470
  break
472
471
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
473
472
  this.jdJumpToShopHome({
474
473
  ...configDataValue,
475
474
  logEventInfo,
476
475
  })
477
476
  break
478
477
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
479
478
  break
480
479
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
481
480
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
482
481
  const getShoppingGuideParams = this.jdOpenAppParams(
483
482
  configDataValue.clickUrl,
484
483
  )
485
484
  getShoppingGuideParams &&
486
485
  this.jdJumpToShopActivity(
487
486
  Object.assign({}, getShoppingGuideParams, {
488
487
  logEventInfo,
489
488
  }),
490
489
  )
491
490
  }
492
491
  break
493
492
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
494
493
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
495
494
  const search = linkUrl.match(/\?.+/)
496
495
  if (search) {
497
496
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
498
497
  parseQueryUrlString(linkUrl)
499
498
  try {
500
499
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
501
500
  } catch (e) {
502
501
  console.warn('解析小程序 param 错误:', miniQueryData.param)
503
502
  }
504
503
  this.jdJumpToMiniProgram(miniQueryData)
505
504
  } else {
506
505
  console.warn('小程序地址错误:', linkUrl)
507
506
  }
508
507
  break
509
508
  }
510
509
  default:
511
510
  }
512
511
  }
513
512
 
514
513
  jdOpenAppParams(openAppUrl): Object | boolean {
515
514
  let getParams: boolean | Object = false
516
515
  if (this.isOpenJdAppUrl(openAppUrl)) {
517
516
  try {
518
517
  getParams = openAppUrl.replace(
519
518
  /openApp\.jdMobile:\/\/virtual\?params=/i,
520
519
  '',
521
520
  )
522
521
  getParams = JSON.parse(String(getParams))
523
522
  } catch (e) {
524
523
  console.log(e)
525
524
  }
526
525
  }
527
526
  return getParams
528
527
  }
529
528
  isOpenJdAppUrl(openAppUrl) {
530
529
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl)
531
530
  }
532
531
 
533
532
  creatParamToLogStr(eventParam) {
534
533
  return eventParam
535
534
  ? Object.keys(eventParam)
536
535
  .map((key) => {
537
536
  return `${key}_${eventParam[key]}`
538
537
  })
539
538
  .join('_')
540
539
  : ''
541
540
  }
542
541
 
543
542
  jdNavigateToNative(
544
543
  url: string,
545
544
  params: {
546
545
  logEventInfo?: object
547
546
  } = {},
548
547
  successBack?: Function | undefined,
549
548
  failBack?: Function | undefined,
550
549
  ) {
551
550
  const { logEventInfo } = params
552
551
  const getEparam = logEventInfo || params
553
552
  console.log('jdNavigateToNative params: ', params)
554
553
  console.log('logEventInfo params: ', logEventInfo)
555
554
  try {
556
555
  this.clickEventLog(getEparam)
557
556
  } catch (e) {
558
557
  console.log(e)
559
558
  }
560
559
  setTimeout(() => {
561
560
  Taro.navigateTo({
562
561
  url,
563
562
  })
564
563
  .then((res) => {
565
564
  typeof successBack === 'function' && successBack(res)
566
565
  console.log('navigateToWxapp.success', res)
567
566
  })
568
567
  .catch((err) => {
569
568
  typeof failBack === 'function' && failBack(err)
570
569
  console.log('navigateToWxapp.fail', err)
571
570
  })
572
571
  }, 200)
573
572
  }
574
573
 
575
574
  clickEventLog(
576
575
  opts: JumpEventReportInterFace.OptEventLogParams = {},
577
576
  clickKey = 'click',
578
577
  ) {
579
578
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
580
579
  if (eventId && jsonParam) {
581
580
  const { etModelInfo, logBaseInfo } = jsonParam
582
581
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click'
583
582
  const miniLogParams = {
584
583
  eid: eventId,
585
584
  elevel: eventLevel,
586
585
  ext: JSON.stringify(logBaseInfo || jsonParam),
587
586
  etModel: JSON.stringify(etModelInfo || {}),
588
587
  pname: this.logPname,
589
588
  pparam: JSON.stringify(this.routerInfo.params),
590
589
  target: this.routerInfo.path,
591
590
  event: this.nativeEvent,
592
591
  pageId: this.logPageId,
593
592
  ...otherParams,
594
593
  }
595
594
  console.log('点击埋点参数对象', miniLogParams, miniClickKey)
596
595
  global.miniAppLogInstance &&
597
596
  global.miniAppLogInstance[miniClickKey](miniLogParams)
598
597
  }
599
598
  }
600
599
 
601
600
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
602
601
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
603
602
  if (eventId && jsonParam) {
604
603
  const { etModelInfo, logBaseInfo } = jsonParam
605
604
  const miniLogParams = {
606
605
  eid: eventId,
607
606
  elevel: eventLevel,
608
607
  ext: JSON.stringify(logBaseInfo || jsonParam),
609
608
  etModel: JSON.stringify(etModelInfo || {}),
610
609
  pname: this.logPname,
611
610
  pparam: JSON.stringify(this.routerInfo.params),
612
611
  target: this.routerInfo.path,
613
612
  pageId: this.logPageId,
614
613
  ...otherParams,
615
614
  }
616
615
  global.miniAppLogInstance &&
617
616
  global.miniAppLogInstance['exposure'](miniLogParams)
618
617
  }
619
618
  }
620
619
 
621
620
  initOpenTriggerExposure(type) {
622
621
  if (!this.sectionExposureInfo[type]) {
623
622
  Taro.nextTick(() => {
624
623
  setTimeout(() => {
625
624
  global.info.pageInfo.isExposureState = true
626
625
  taroEventInitExposure()
627
626
  this.sectionExposureInfo[`${type}`] = true
628
627
  }, 200)
629
628
  })
630
629
  }
631
630
  }
631
+ import Taro from '@tarojs/taro'
632
632
  routerInfo: {
633
633
  params: {},
634
634
  },
635
635
  nativeEvent: null,
636
636
  logPageParamStr: '',
637
637
  implements JumpEventReportInterFace.JumpEventReportInit
638
638
  public jingGouMiniState: boolean
639
639
  public logPageId: string
640
640
  public logPageParamStr: string
641
641
  public nativeEvent: any
642
642
  public routerInfo: JumpEventReportInterFace.RouterInfo
643
643
  public logPname: LogPnameInfo
644
644
  public jumpMiniPath: JumpEventReportInterFace.JumpMiniPath
645
645
  public jumpWebUrl: JumpEventReportInterFace.jumpWebUrl
646
646
  public sectionExposureInfo: object
647
647
  constructor(opt = {}) {
648
648
  this.logPageId = LogPageIdInfo.APP
649
649
  this.jingGouMiniState = false
650
650
  this.jumpMiniPath = JumpMiniPath
651
651
  this.jumpWebUrl = JumpWebUrl
652
652
  this.sectionExposureInfo = {}
653
653
  this.getConfig(opt)
654
654
  }
655
655
  getConfig(opt) {
656
656
  return Object.assign(this, {}, defaultConfig, opt)
657
657
  }
658
658
 
659
659
  updateInfo(
660
660
  routerInfo,
661
661
  logPname = LogPnameInfo.HOME,
662
662
  pageId = LogPageIdInfo.APP,
663
663
  ) {
664
664
  this.routerInfo = routerInfo
665
665
  this.logPname = logPname
666
666
  this.logPageId = pageId
667
667
  }
668
668
  reportInfoPv(_pageId, _opt = {}) {}
669
669
 
670
670
  getShopIdOrVenderIdParams(
671
671
  params: JumpEventReportInterFace.ShopIdsInfo = {},
672
672
  ): JumpEventReportInterFace.ShopIdsInfo {
673
673
  const setParams = {}
674
674
  params.shopId && (setParams['shopId'] = `${params.shopId}`)
675
675
  params.venderId && (setParams['venderId'] = `${params.venderId}`)
676
676
  return setParams
677
677
  }
678
678
 
679
679
  getShopIdsInfo(params = {}): JumpEventReportInterFace.ShopIdsInfo {
680
680
  let setParams = this.getShopIdOrVenderIdParams(params)
681
681
  setParams = {
682
682
  ...params,
683
683
  ...setParams,
684
684
  }
685
685
  return setParams
686
686
  }
687
687
 
688
688
  jdJumpToShopLight(shopInfo) {
689
689
  this.jdNavigateToNative(
690
690
  `${this.jumpMiniPath.shopLight}?${objectToUrlEncode(
691
691
  this.getShopIdOrVenderIdParams(shopInfo),
692
692
  )}`,
693
693
  {
694
694
  ...shopInfo,
695
695
  },
696
696
  )
697
697
  }
698
698
 
699
699
  jdJumpToProduct(skuIds, logEventInfo) {
700
700
  skuIds = skuIds.toString().trim()
701
701
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
702
702
  this.jdNavigateToNative(
703
703
  `${this.jumpMiniPath.detail}?sku=${getSkuId}`,
704
704
  logEventInfo,
705
705
  )
706
706
  }
707
707
 
708
708
  jdJumpToFlashSaleTab(_logEventInfo) {
709
709
  console.log('跳转闪购', _logEventInfo)
710
710
  }
711
711
 
712
712
 
713
713
  jdJumpToShopMemberInfo(logEventInfo) {
714
714
  console.log('跳转修改会员信息页', logEventInfo)
715
715
  }
716
716
 
717
717
  jdJumpToShopMemberPointDetail(logEventInfo) {
718
718
  const venderId = global.info.queryInfo.venderId
719
719
  const shopId = global.info.queryInfo.shopId
720
720
  this.jdJumpToWeb(
721
721
  `${this.jumpWebUrl.shopMemberPointDetail}?venderId=${venderId}&shopId=${shopId}`,
722
722
  logEventInfo,
723
723
  )
724
724
  }
725
725
 
726
726
  jdJumpToShopMemberBenefit(logEventInfo) {
727
727
  const venderId = global.info.queryInfo.venderId
728
728
  const shopId = global.info.queryInfo.shopId
729
729
  this.jdJumpToWeb(
730
730
  `${this.jumpWebUrl.shopMemberBenefit}?venderId=${venderId}&shopId=${shopId}`,
731
731
  logEventInfo,
732
732
  )
733
733
  }
734
734
 
735
735
  jdJumpToShopMemberRule(logEventInfo) {
736
736
  const venderId = global.info.queryInfo.venderId
737
737
  const shopId = global.info.queryInfo.shopId
738
738
  console.log('会员规则页h5 global.info', global.info)
739
739
  this.jdJumpToWeb(
740
740
  `${this.jumpWebUrl.shopMemberRule}?venderId=${venderId}&shopId=${shopId}&sign=member`,
741
741
  logEventInfo,
742
742
  )
743
743
  }
744
744
 
745
745
  jdJumpToShopMemberCloseAccount(venderType, logEventInfo) {
746
746
  const venderId = global.info.queryInfo.venderId
747
747
  const shopId = global.info.queryInfo.shopId
748
748
  console.log('注销会员页h5 global.info', global.info)
749
749
  this.jdJumpToWeb(
750
750
  `${this.jumpWebUrl.shopMemberCloseAccount}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}`,
751
751
  logEventInfo,
752
752
  )
753
753
  }
754
754
 
755
755
  jdJumpToShopMemberPointExchange(
756
756
  venderType,
757
757
  levelZeroMenuUrl,
758
758
  logEventInfo,
759
759
  ) {
760
760
  const venderId = global.info.queryInfo.venderId
761
761
  const shopId = global.info.queryInfo.shopId
762
762
  const channel = CHANNEL.h5
763
763
  this.jdJumpToWeb(
764
764
  `${this.jumpWebUrl.shopMemberPointExchange}?venderId=${venderId}&shopId=${shopId}&venderType=${venderType}&channel=${channel}&levelZeroMenuUrl=${levelZeroMenuUrl}`,
765
765
  logEventInfo,
766
766
  )
767
767
  }
768
768
 
769
769
  jdJumpToShopMemberBonusPurchase(customerLevel, logEventInfo) {
770
770
  const venderId = global.info.queryInfo.venderId
771
771
  const shopId = global.info.queryInfo.shopId
772
772
  this.jdJumpToWeb(
773
773
  `${this.jumpWebUrl.shopMemberBonusPurchase}?venderId=${venderId}&shopId=${shopId}`,
774
774
  logEventInfo,
775
775
  )
776
776
  }
777
777
 
778
778
  jdJumpToShopMemberGood(customerLevel, logEventInfo) {
779
779
  const venderId = global.info.queryInfo.venderId
780
780
  const shopId = global.info.queryInfo.shopId
781
781
  this.jdJumpToWeb(
782
782
  `${this.jumpWebUrl.shopMemberGood}?venderId=${venderId}&shopId=${shopId}&customerLevel=${customerLevel}`,
783
783
  logEventInfo,
784
784
  )
785
785
  }
786
786
 
787
787
  jdJumpToBeanDetail(logEventInfo) {
788
788
  console.log('this.jumpWebUrl.beanDetail', this.jumpWebUrl.beanDetail)
789
789
  this.jdJumpToWeb(
790
790
  `${this.jumpWebUrl.beanDetail}?source=dianpuhuiyuan`,
791
791
  logEventInfo,
792
792
  )
793
793
  }
794
794
 
795
795
  jdJumpToMyRedEnvelope(logEventInfo) {
796
796
  console.log('跳转红包页', logEventInfo)
797
797
  }
798
798
 
799
799
  jdJumpToMyCoupon(logEventInfo) {
800
800
  console.log('跳转优惠券页', logEventInfo)
801
801
  }
802
802
 
803
803
 
804
804
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
805
805
  this.jdJumpToWeb(
806
806
  `${this.jumpWebUrl.pages}?shopId=${shopId}&venderId=${venderId}&tabActive=home-product`,
807
807
  logEventInfo,
808
808
  )
809
809
  }
810
810
 
811
811
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}){
812
812
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
813
813
  }
814
814
 
815
815
  jdJumpToAppHome(logEventInfo) {
816
816
  this.jdJumpToWeb(
817
817
  `${this.jumpWebUrl.mobileHome}?originReferer=shopx`,
818
818
  logEventInfo,
819
819
  )
820
820
  }
821
821
 
822
822
  jdJumpToShopSearch(queryParams) {
823
823
  const { shopId, categoryId, keyword, pageId, description, shopName } =
824
824
  queryParams
825
825
  const cateId = categoryId ? `&cateId=${categoryId}` : ''
826
826
  const addKeyWord = keyword ? `&keyword=${keyword}` : ''
827
827
  const addPageId = pageId ? `&pageId=${pageId}` : ''
828
828
  const searchDes = description ? `&description=${description}` : ''
829
829
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
830
830
  const searchType = categoryId ? 5 : keyword ? 4 : 3
831
831
  this.jdJumpToWeb(
832
832
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}`,
833
833
  queryParams,
834
834
  )
835
835
  }
836
836
 
837
837
  jdJumpToOrderList() {
838
838
  console.warn(
839
839
  '触发基类的jdJumpToOrderList,这不是一个期望的结果,应该调用各端子类来实现',
840
840
  )
841
841
  }
842
842
 
843
843
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
844
844
  this.jdJumpToWeb(
845
845
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
846
846
  logEventInfo,
847
847
  )
848
848
  }
849
849
 
850
850
  jdJumpToWeb(
851
851
  spUrl,
852
852
  logEventInfo,
853
853
  successBack?: Function | undefined,
854
854
  failBack?: Function | undefined,
855
855
  ) {
856
856
  this.jdNavigateToNative(
857
857
  `${this.jumpMiniPath.h5}?encode_url=` + encodeURIComponent(spUrl),
858
858
  {
859
859
  ...logEventInfo,
860
860
  },
861
861
  successBack,
862
862
  failBack,
863
863
  )
864
864
  }
865
865
 
866
866
  jdJumpToUgcContent(urlObj, logEventInfo = {}) {
867
867
  if (typeof urlObj === 'object') {
868
868
  this.jdJumpToWeb(
869
869
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
870
870
  urlObj,
871
871
  )}`,
872
872
  { logEventInfo },
873
873
  )
874
874
  } else {
875
875
  const getShopUgcParams = this.jdOpenAppParams(urlObj)
876
876
  console.log('getShopUgcParams=====', getShopUgcParams)
877
877
  if (getShopUgcParams) {
878
878
  getShopUgcParams['category'] && delete getShopUgcParams['category']
879
879
  getShopUgcParams['des'] && delete getShopUgcParams['des']
880
880
  this.jdJumpToWeb(
881
881
  `${this.jumpWebUrl.shopUseShareOrderUgcContent}?${objectToUrlEncode(
882
882
  getShopUgcParams as Object,
883
883
  )}`,
884
884
  { logEventInfo },
885
885
  )
886
886
  }
887
887
  }
888
888
  }
889
889
 
890
890
  jdJumpToShopActivity(shopInfo) {
891
891
  const getParams = Object.assign(
892
892
  {},
893
893
  {
894
894
  category: 'jump',
895
895
  des: 'jshopActivity',
896
896
  shopId: global.info.queryInfo.shopId,
897
897
  venderId: global.info.queryInfo.venderId,
898
898
  },
899
899
  shopInfo,
900
900
  )
901
901
  getParams['projectId'] &&
902
902
  (getParams['projectId'] = `${getParams['projectId']}`)
903
903
  }
904
904
 
905
905
  jdJumpToShopMember(shopInfo) {
906
906
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
907
907
  this.jdJumpToWeb(
908
908
  `${this.jumpWebUrl.wqShopMember}?${objectToUrlEncode(getShopInfo)}`,
909
909
  shopInfo,
910
910
  )
911
911
  }
912
912
 
913
913
  jdJumpToShopMemberCard(shopInfo) {
914
914
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
915
915
  this.jdJumpToWeb(
916
916
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
917
917
  shopInfo,
918
918
  )
919
919
  }
920
920
 
921
921
  jdJumpToTotalPromotion(shopInfo) {
922
922
  const { url, logEventInfo } = shopInfo
923
923
  if (this.isOpenJdAppUrl(url)) {
924
924
  const getOpenAppParams: any = this.jdOpenAppParams(url)
925
925
  if (getOpenAppParams) {
926
926
  if (getOpenAppParams?.activityId) {
927
927
  this.jdJumpToWeb(
928
928
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
929
929
  shopInfo,
930
930
  )
931
931
  }
932
932
  }
933
933
  } else {
934
934
  this.jdJumpToWeb(url, logEventInfo)
935
935
  }
936
936
  }
937
937
 
938
938
  jdJumpToDongDongChat(paramInfo) {
939
939
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = paramInfo
940
940
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
941
941
  this.jdJumpToWeb(dongdongUrl, otherInfo)
942
942
  }
943
943
 
944
944
  jdJumpToShopDetail(shopInfo) {
945
945
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
946
946
  this.jdJumpToWeb(
947
947
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
948
948
  shopInfo,
949
949
  )
950
950
  }
951
951
 
952
952
  jdJumpToMiniProgram({
953
953
  appId,
954
954
  path,
955
955
  param = {},
956
956
  }: JumpEventReportInterFace.LinkMiniParams) {
957
957
  const pageName = param['pageType'] || 'home'
958
958
  path = `pages/${pageName}/index`
959
959
  if (appId === global.info.pageInfo?.appId) {
960
960
  Taro.navigateTo({
961
961
  url: `/${path}?${objectToUrlEncode(param)}`,
962
962
  }).catch((err) => {
963
963
  console.warn('跳转小程序页面错误:', err)
964
964
  })
965
965
  } else {
966
966
  console.log('一个小程序跳转到另一个小程序暂无此业务')
967
967
  }
968
968
  }
969
969
 
970
970
  jdJumpToAppMiniProgram(
971
971
  path: string,
972
972
  param = {},
973
973
  successBack?: Function,
974
974
  failBack?: Function,
975
975
  ) {
976
976
  this.jdNavigateToNative(path, param, successBack, failBack)
977
977
  }
978
978
 
979
979
  jdJumpConfigUrl(detail, logEventInfo = {}) {
980
980
  const { configDataType, configDataValue } = detail
981
981
  switch (configDataType) {
982
982
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
983
983
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
984
984
  break
985
985
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
986
986
  this.jdJumpToWeb(
987
987
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
988
988
  logEventInfo,
989
989
  )
990
990
  break
991
991
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
992
992
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
993
993
  const getShopSearchParams = this.jdOpenAppParams(
994
994
  configDataValue.clickUrl,
995
995
  )
996
996
  getShopSearchParams &&
997
997
  this.jdJumpToShopSearch(
998
998
  Object.assign({}, getShopSearchParams, {
999
999
  logEventInfo,
1000
1000
  }),
1001
1001
  )
1002
1002
  } else {
1003
1003
  this.jdJumpToShopSearch(
1004
1004
  configDataValue['cid']
1005
1005
  ? Object.assign(
1006
1006
  {},
1007
1007
  {
1008
1008
  shopId: global.info.queryInfo.shopId,
1009
1009
  categoryId: configDataValue.cid,
1010
1010
  logEventInfo,
1011
1011
  },
1012
1012
  )
1013
1013
  : {
1014
1014
  shopId: global.info.queryInfo.shopId,
1015
1015
  logEventInfo,
1016
1016
  },
1017
1017
  )
1018
1018
  }
1019
1019
  break
1020
1020
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1021
1021
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1022
1022
  const getShopMemberParams = this.jdOpenAppParams(
1023
1023
  configDataValue.clickUrl,
1024
1024
  )
1025
1025
  getShopMemberParams &&
1026
1026
  this.jdJumpToShopMember(
1027
1027
  Object.assign({}, getShopMemberParams, {
1028
1028
  logEventInfo,
1029
1029
  }),
1030
1030
  )
1031
1031
  } else {
1032
1032
  this.jdJumpToShopMember({
1033
1033
  shopId: global.info.queryInfo.shopId,
1034
1034
  venderId: configDataValue.shopDetail,
1035
1035
  logEventInfo,
1036
1036
  })
1037
1037
  }
1038
1038
  break
1039
1039
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1040
1040
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1041
1041
  const getShopActivityParams = this.jdOpenAppParams(
1042
1042
  configDataValue.clickUrl,
1043
1043
  )
1044
1044
  getShopActivityParams &&
1045
1045
  this.jdJumpToShopActivity(
1046
1046
  Object.assign({}, getShopActivityParams, {
1047
1047
  logEventInfo,
1048
1048
  }),
1049
1049
  )
1050
1050
  } else if (configDataValue['projectId']) {
1051
1051
  this.jdJumpToShopActivity({
1052
1052
  projectId: configDataValue['projectId'],
1053
1053
  configDataValue,
1054
1054
  logEventInfo,
1055
1055
  })
1056
1056
  }
1057
1057
  break
1058
1058
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1059
1059
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON: {
1060
1060
  const _url = configDataValue.linkUrl
1061
1061
  if (
1062
1062
  _url.indexOf('to=') === -1 &&
1063
1063
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1064
1064
  ) {
1065
1065
  const _shopId = _url.match(/\d+/g)[0]
1066
1066
  this.jdJumpToShopHome({
1067
1067
  shopId: `${_shopId}`,
1068
1068
  logEventInfo,
1069
1069
  })
1070
1070
  } else if (this.isOpenJdAppUrl(_url)) {
1071
1071
  const getOpenAppParams = this.jdOpenAppParams(_url)
1072
1072
  console.log('获取解析后的参数结果', getOpenAppParams)
1073
1073
  if (getOpenAppParams) {
1074
1074
  isJdApp
1075
1075
  ? this.jdNavigateToNative(
1076
1076
  Object.assign({}, getOpenAppParams, {
1077
1077
  logEventInfo,
1078
1078
  }),
1079
1079
  )
1080
1080
  : this.jdNavigateToNative(
1081
1081
  '',
1082
1082
  Object.assign({}, getOpenAppParams, {
1083
1083
  logEventInfo,
1084
1084
  }),
1085
1085
  )
1086
1086
  } else {
1087
1087
  this.jdNavigateToNative(
1088
1088
  '',
1089
1089
  Object.assign({}, getOpenAppParams, {
1090
1090
  logEventInfo,
1091
1091
  }),
1092
1092
  )
1093
1093
  }
1094
1094
  } else {
1095
1095
  this.jdJumpToWeb(_url, logEventInfo)
1096
1096
  }
1097
1097
  break
1098
1098
  }
1099
1099
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1100
1100
  this.jdJumpToShopDetail({
1101
1101
  venderId: global.info.queryInfo.venderId,
1102
1102
  shopId: global.info.queryInfo.shopId,
1103
1103
  logEventInfo,
1104
1104
  })
1105
1105
  break
1106
1106
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1107
1107
  this.jdJumpToShopHome({
1108
1108
  ...configDataValue,
1109
1109
  logEventInfo,
1110
1110
  })
1111
1111
  break
1112
1112
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1113
1113
  break
1114
1114
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1115
1115
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1116
1116
  const getShoppingGuideParams = this.jdOpenAppParams(
1117
1117
  configDataValue.clickUrl,
1118
1118
  )
1119
1119
  getShoppingGuideParams &&
1120
1120
  this.jdJumpToShopActivity(
1121
1121
  Object.assign({}, getShoppingGuideParams, {
1122
1122
  logEventInfo,
1123
1123
  }),
1124
1124
  )
1125
1125
  }
1126
1126
  break
1127
1127
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1128
1128
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
1129
1129
  const search = linkUrl.match(/\?.+/)
1130
1130
  if (search) {
1131
1131
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1132
1132
  parseQueryUrlString(linkUrl)
1133
1133
  try {
1134
1134
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
1135
1135
  } catch (e) {
1136
1136
  console.warn('解析小程序 param 错误:', miniQueryData.param)
1137
1137
  }
1138
1138
  this.jdJumpToMiniProgram(miniQueryData)
1139
1139
  } else {
1140
1140
  console.warn('小程序地址错误:', linkUrl)
1141
1141
  }
1142
1142
  break
1143
1143
  }
1144
1144
  default:
1145
1145
  }
1146
1146
  }
1147
1147
 
1148
1148
  jdOpenAppParams(openAppUrl): Object | boolean {
1149
1149
  let getParams: boolean | Object = false
1150
1150
  if (this.isOpenJdAppUrl(openAppUrl)) {
1151
1151
  try {
1152
1152
  getParams = openAppUrl.replace(
1153
1153
  /openApp\.jdMobile:\/\/virtual\?params=/i,
1154
1154
  '',
1155
1155
  )
1156
1156
  getParams = JSON.parse(String(getParams))
1157
1157
  } catch (e) {
1158
1158
  console.log(e)
1159
1159
  }
1160
1160
  }
1161
1161
  return getParams
1162
1162
  }
1163
1163
  isOpenJdAppUrl(openAppUrl) {
1164
1164
  return /openApp\.jdMobile:\/\/virtual\?params=/i.test(openAppUrl)
1165
1165
  }
1166
1166
 
1167
1167
  creatParamToLogStr(eventParam) {
1168
1168
  return eventParam
1169
1169
  ? Object.keys(eventParam)
1170
1170
  .map((key) => {
1171
1171
  return `${key}_${eventParam[key]}`
1172
1172
  })
1173
1173
  .join('_')
1174
1174
  : ''
1175
1175
  }
1176
1176
 
1177
1177
  jdNavigateToNative(
1178
1178
  url: string,
1179
1179
  params: {
1180
1180
  logEventInfo?: object
1181
1181
  } = {},
1182
1182
  successBack?: Function | undefined,
1183
1183
  failBack?: Function | undefined,
1184
1184
  ) {
1185
1185
  const { logEventInfo } = params
1186
1186
  const getEparam = logEventInfo || params
1187
1187
  console.log('jdNavigateToNative params: ', params)
1188
1188
  console.log('logEventInfo params: ', logEventInfo)
1189
1189
  try {
1190
1190
  this.clickEventLog(getEparam)
1191
1191
  } catch (e) {
1192
1192
  console.log(e)
1193
1193
  }
1194
1194
  setTimeout(() => {
1195
1195
  Taro.navigateTo({
1196
1196
  url,
1197
1197
  })
1198
1198
  .then((res) => {
1199
1199
  typeof successBack === 'function' && successBack(res)
1200
1200
  console.log('navigateToWxapp.success', res)
1201
1201
  })
1202
1202
  .catch((err) => {
1203
1203
  typeof failBack === 'function' && failBack(err)
1204
1204
  console.log('navigateToWxapp.fail', err)
1205
1205
  })
1206
1206
  }, 200)
1207
1207
  }
1208
1208
 
1209
1209
  clickEventLog(
1210
1210
  opts: JumpEventReportInterFace.OptEventLogParams = {},
1211
1211
  clickKey = 'click',
1212
1212
  ) {
1213
1213
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
1214
1214
  if (eventId && jsonParam) {
1215
1215
  const { etModelInfo, logBaseInfo } = jsonParam
1216
1216
  const miniClickKey = clickKey === 'addToCart' ? 'addToCart' : 'click'
1217
1217
  const miniLogParams = {
1218
1218
  eid: eventId,
1219
1219
  elevel: eventLevel,
1220
1220
  ext: JSON.stringify(logBaseInfo || jsonParam),
1221
1221
  etModel: JSON.stringify(etModelInfo || {}),
1222
1222
  pname: this.logPname,
1223
1223
  pparam: JSON.stringify(this.routerInfo.params),
1224
1224
  target: this.routerInfo.path,
1225
1225
  event: this.nativeEvent,
1226
1226
  pageId: this.logPageId,
1227
1227
  ...otherParams,
1228
1228
  }
1229
1229
  console.log('点击埋点参数对象', miniLogParams, miniClickKey)
1230
1230
  global.miniAppLogInstance &&
1231
1231
  global.miniAppLogInstance[miniClickKey](miniLogParams)
1232
1232
  }
1233
1233
  }
1234
1234
 
1235
1235
  exposureEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}) {
1236
1236
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
1237
1237
  if (eventId && jsonParam) {
1238
1238
  const { etModelInfo, logBaseInfo } = jsonParam
1239
1239
  const miniLogParams = {
1240
1240
  eid: eventId,
1241
1241
  elevel: eventLevel,
1242
1242
  ext: JSON.stringify(logBaseInfo || jsonParam),
1243
1243
  etModel: JSON.stringify(etModelInfo || {}),
1244
1244
  pname: this.logPname,
1245
1245
  pparam: JSON.stringify(this.routerInfo.params),
1246
1246
  target: this.routerInfo.path,
1247
1247
  pageId: this.logPageId,
1248
1248
  ...otherParams,
1249
1249
  }
1250
1250
  global.miniAppLogInstance &&
1251
1251
  global.miniAppLogInstance['exposure'](miniLogParams)
1252
1252
  }
1253
1253
  }
1254
1254
 
1255
1255
  initOpenTriggerExposure(type) {
1256
1256
  if (!this.sectionExposureInfo[type]) {
1257
1257
  Taro.nextTick(() => {
1258
1258
  setTimeout(() => {
1259
1259
  global.info.pageInfo.isExposureState = true
1260
1260
  taroEventInitExposure()
1261
1261
  this.sectionExposureInfo[`${type}`] = true
1262
1262
  }, 200)
1263
1263
  })
1264
1264
  }
1265
1265
  }