costway-tracking-v2 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.cjs +44 -50
  2. package/package.json +1 -1
package/index.cjs CHANGED
@@ -228,6 +228,8 @@ function trackEvent(eventType, data) {
228
228
 
229
229
  }
230
230
  function trackPageView() {
231
+ console.log("trackPageView");
232
+
231
233
  let session = getSession();
232
234
  const pageViewData = {
233
235
  url: window.location.href,
@@ -415,64 +417,60 @@ let pageHiddenTime = null;
415
417
  let pageVisibleTime = null;
416
418
  module.exports = {
417
419
  initTracking: function (router) {
420
+ // 如果 UA 里包含 costway-app
421
+ const app = typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes("costway-app");
418
422
 
419
423
  let userId = getuserId();
420
424
  if (!userId) {
421
425
  userId = generateUUID();
422
426
  setuserId(userId);
423
427
  }
424
- trackPageView();
428
+ !app && trackPageView();
425
429
  //trackPageLoadTime();
426
430
  // trackResourceLoadTimes();
427
431
  document.addEventListener('click', trackClick);
428
432
 
429
- document.addEventListener('visibilitychange', function () {
430
- if (lastVisibilityState) {
431
- if (document.visibilityState === 'hidden' || document.hidden) {
432
- console.log('hidden');
433
- // 页面从可见变为不可见,记录时间
434
- pageHiddenTime = new Date().getTime();
435
- const visibleDuration = new Date().getTime() - pageVisibleTime;
436
- if (hasTrackedPageLeave == "" || hasTrackedPageLeave == "hidden") {
437
- hasTrackedPageLeave = "hidden";
438
- trackPageLeave('hidden');
439
- }
440
- } else if (document.visibilityState === 'visible' && pageHiddenTime) {
441
- // 页面从不可见变为可见,计算隐藏的时长
442
- const hiddenDuration = new Date().getTime() - pageHiddenTime;
443
- pageHiddenTime = null;
444
- pageVisibleTime = new Date().getTime();
445
- // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
446
- if (hiddenDuration > 30000) {
447
- trackPageLeave("visible");
433
+ if(!app){
434
+ document.addEventListener('visibilitychange', function () {
435
+ if (lastVisibilityState) {
436
+ if (document.visibilityState === 'hidden' || document.hidden) {
437
+ console.log('hidden');
438
+ // 页面从可见变为不可见,记录时间
439
+ pageHiddenTime = new Date().getTime();
440
+ const visibleDuration = new Date().getTime() - pageVisibleTime;
441
+ if (hasTrackedPageLeave == "" || hasTrackedPageLeave == "hidden") {
442
+ hasTrackedPageLeave = "hidden";
443
+ trackPageLeave('hidden');
444
+ }
445
+ } else if (document.visibilityState === 'visible' && pageHiddenTime) {
446
+ // 页面从不可见变为可见,计算隐藏的时长
447
+ const hiddenDuration = new Date().getTime() - pageHiddenTime;
448
+ pageHiddenTime = null;
449
+ pageVisibleTime = new Date().getTime();
450
+ // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
451
+ if (hiddenDuration > 30000) {
452
+ trackPageLeave("visible");
453
+ }
454
+ // 触发 pageView 事件
455
+ trackPageView();
448
456
  }
449
- // 触发 pageView 事件
450
- trackPageView();
451
457
  }
452
- }
453
- lastVisibilityState = document.visibilityState;
454
- });
455
- // window.addEventListener('beforeunload', function () {
456
- // console.log('beforeunload');
457
- // if(!hasTrackedPageLeave){
458
- // hasTrackedPageLeave = true;
459
- // trackPageLeave('beforeunload');
460
- // }
461
-
462
- // });
463
- window.addEventListener('pagehide', function () {
464
- console.log('pagehide');
465
- if (hasTrackedPageLeave == "pagehide") {
466
- hasTrackedPageLeave = "pagehide";
467
- trackPageLeave('pagehide');
468
- }
469
-
470
- });
471
- window.addEventListener('DOMContentLoaded', function () {
472
- observeDomChanges();
473
- observeClassChanges();
474
- });
475
- window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0); });
458
+ lastVisibilityState = document.visibilityState;
459
+ });
460
+ window.addEventListener('pagehide', function () {
461
+ console.log('pagehide');
462
+ if (hasTrackedPageLeave == "pagehide") {
463
+ hasTrackedPageLeave = "pagehide";
464
+ trackPageLeave('pagehide');
465
+ }
466
+
467
+ });
468
+ window.addEventListener('DOMContentLoaded', function () {
469
+ observeDomChanges();
470
+ observeClassChanges();
471
+ });
472
+ window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0); });
473
+ }
476
474
 
477
475
  registerErrorListener();
478
476
 
@@ -498,8 +496,4 @@ module.exports = {
498
496
  }
499
497
  }
500
498
 
501
- // init();
502
- // window.trackCustomEvent = trackCustomEvent;
503
-
504
-
505
499
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "costway-tracking-v2",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "统计代码,新增vue3和vue2分别管理版本-增加多国家",
5
5
  "main": "index.cjs",
6
6
  "type": "module",