costway-tracking-v2 2.0.9 → 2.0.11

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.
package/index.cjs CHANGED
@@ -414,16 +414,16 @@ function setupRouterListener(router) {
414
414
  let lastVisibilityState = isBrowser() ? document.visibilityState : "";
415
415
  let pageHiddenTime = null;
416
416
  let pageVisibleTime = null;
417
+ const app = typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes("costway-app");
417
418
  module.exports = {
418
419
  initTracking: function (router) {
419
420
  // 如果 UA 里包含 costway-app
420
- const app = typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes("costway-app");
421
421
 
422
422
  let userId = getuserId();
423
423
  if (!userId) {
424
424
  userId = generateUUID();
425
425
  setuserId(userId);
426
- }
426
+ }
427
427
  !app && trackPageView();
428
428
  //trackPageLoadTime();
429
429
  // trackResourceLoadTimes();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "costway-tracking-v2",
3
- "version": "2.0.9",
3
+ "version": "2.0.11",
4
4
  "description": "统计代码,新增vue3和vue2分别管理版本-增加多国家",
5
5
  "main": "index.cjs",
6
6
  "type": "module",
package/tracking.js CHANGED
@@ -414,56 +414,60 @@
414
414
  let lastVisibilityState = document.visibilityState;
415
415
  let pageHiddenTime = null;
416
416
  let pageVisibleTime = null;
417
+ const app = typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes("costway-app");
417
418
  function init() {
418
419
  let userId = getuserId();
419
420
  if (!userId) {
420
421
  userId = generateUUID();
421
422
  setuserId(userId);
422
423
  }
423
- trackPageView();
424
+ !app && trackPageView();
424
425
  // trackPageLoadTime();
425
426
  // trackResourceLoadTimes();
426
427
  document.addEventListener('click', trackClick);
427
428
 
428
- document.addEventListener('visibilitychange', function () {
429
- if (lastVisibilityState) {
430
- if (document.visibilityState === 'hidden' || document.hidden) {
431
- console.log('hidden');
432
- // 页面从可见变为不可见,记录时间
433
- pageHiddenTime = new Date().getTime();
434
- const visibleDuration = new Date().getTime() - pageVisibleTime;
435
- if(hasTrackedPageLeave=="" || hasTrackedPageLeave=="hidden"){
436
- hasTrackedPageLeave = "hidden";
437
- trackPageLeave('hidden');
429
+ if(!app){
430
+ document.addEventListener('visibilitychange', function () {
431
+ if (lastVisibilityState) {
432
+ if (document.visibilityState === 'hidden' || document.hidden) {
433
+ console.log('hidden');
434
+ // 页面从可见变为不可见,记录时间
435
+ pageHiddenTime = new Date().getTime();
436
+ const visibleDuration = new Date().getTime() - pageVisibleTime;
437
+ if(hasTrackedPageLeave=="" || hasTrackedPageLeave=="hidden"){
438
+ hasTrackedPageLeave = "hidden";
439
+ trackPageLeave('hidden');
440
+ }
441
+ } else if (document.visibilityState === 'visible' && pageHiddenTime) {
442
+ // 页面从不可见变为可见,计算隐藏的时长
443
+ const hiddenDuration = new Date().getTime() - pageHiddenTime;
444
+ pageHiddenTime = null;
445
+ pageVisibleTime = new Date().getTime();
446
+ // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
447
+ if (hiddenDuration > 30000) {
448
+ trackPageLeave("visible");
449
+ }
450
+ // 触发 pageView 事件
451
+ trackPageView();
438
452
  }
439
- } else if (document.visibilityState === 'visible' && pageHiddenTime) {
440
- // 页面从不可见变为可见,计算隐藏的时长
441
- const hiddenDuration = new Date().getTime() - pageHiddenTime;
442
- pageHiddenTime = null;
443
- pageVisibleTime = new Date().getTime();
444
- // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
445
- if (hiddenDuration > 30000) {
446
- trackPageLeave("visible");
447
- }
448
- // 触发 pageView 事件
449
- trackPageView();
450
453
  }
451
- }
452
- lastVisibilityState = document.visibilityState;
453
- });
454
- window.addEventListener('pagehide', function () {
455
- console.log('pagehide');
456
- if (hasTrackedPageLeave == "pagehide") {
457
- hasTrackedPageLeave = "pagehide";
458
- trackPageLeave('pagehide');
459
- }
460
-
461
- });
462
- window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0);});
463
- window.addEventListener('DOMContentLoaded', function () {
464
- observeDomChanges();
465
- observeClassChanges();
466
- });
454
+ lastVisibilityState = document.visibilityState;
455
+ });
456
+ window.addEventListener('pagehide', function () {
457
+ console.log('pagehide');
458
+ if (hasTrackedPageLeave == "pagehide") {
459
+ hasTrackedPageLeave = "pagehide";
460
+ trackPageLeave('pagehide');
461
+ }
462
+
463
+ });
464
+ window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0);});
465
+ window.addEventListener('DOMContentLoaded', function () {
466
+ observeDomChanges();
467
+ observeClassChanges();
468
+ });
469
+ }
470
+
467
471
  registerErrorListener();
468
472
  }
469
473
 
package/trackvue3.js CHANGED
@@ -446,6 +446,7 @@ let lastVisibilityState = isBrowser() ? document.visibilityState : null;
446
446
  let pageHiddenTime = null;
447
447
  let pageVisibleTime = null;
448
448
  let initURL = isBrowser() ? window.location.href : '';
449
+ const app = typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes("costway-app");
449
450
  function initTracking(router) {
450
451
  if (!isBrowser()) {
451
452
  return; // 如果不在浏览器环境中,则直接返回
@@ -458,40 +459,42 @@ function initTracking(router) {
458
459
  }
459
460
  simulatedReferrer = isBrowser() ? (document.referrer || window.location.href) : '';
460
461
 
461
- trackPageView(initURL);
462
+ !app && trackPageView(initURL);
462
463
  // trackPageLoadTime();
463
464
  //trackResourceLoadTimes();
464
465
  if (isBrowser()) {
465
466
  document.addEventListener('click', trackClick);
466
467
 
467
- document.addEventListener('visibilitychange', function () {
468
- if (document.visibilityState === 'hidden') {
469
- // 页面从可见变为不可见,记录时间
470
- pageHiddenTime = new Date().getTime();
471
- const visibleDuration = new Date().getTime() - pageVisibleTime;
472
- trackPageLeave();
473
-
474
- } else if (document.visibilityState === 'visible' && pageHiddenTime) {
475
- // 页面从不可见变为可见,计算隐藏的时长
476
- const hiddenDuration = new Date().getTime() - pageHiddenTime;
477
- pageHiddenTime = null;
478
- pageVisibleTime = new Date().getTime();
479
- // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
480
- if (hiddenDuration > 30000) {
468
+ if(!app){
469
+ document.addEventListener('visibilitychange', function () {
470
+ if (document.visibilityState === 'hidden') {
471
+ // 页面从可见变为不可见,记录时间
472
+ pageHiddenTime = new Date().getTime();
473
+ const visibleDuration = new Date().getTime() - pageVisibleTime;
481
474
  trackPageLeave();
475
+
476
+ } else if (document.visibilityState === 'visible' && pageHiddenTime) {
477
+ // 页面从不可见变为可见,计算隐藏的时长
478
+ const hiddenDuration = new Date().getTime() - pageHiddenTime;
479
+ pageHiddenTime = null;
480
+ pageVisibleTime = new Date().getTime();
481
+ // 如果页面隐藏的时长超过一定阈值(例如30秒),则认为用户已离开页面
482
+ if (hiddenDuration > 30000) {
483
+ trackPageLeave();
484
+ }
485
+ // 触发 pageView 事件
486
+ trackPageView();
482
487
  }
483
- // 触发 pageView 事件
484
- trackPageView();
485
- }
486
- });
487
-
488
- //window.addEventListener('beforeunload', trackPageLeave);
489
- window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0); });
490
- window.addEventListener('pagehide', trackPageLeave);
491
- window.addEventListener('DOMContentLoaded', function () {
492
- observeDomChanges();
493
- observeClassChanges();
494
- });
488
+ });
489
+
490
+ //window.addEventListener('beforeunload', trackPageLeave);
491
+ window.addEventListener('load', function () { setTimeout(trackPageLoadTime, 0); });
492
+ window.addEventListener('pagehide', trackPageLeave);
493
+ window.addEventListener('DOMContentLoaded', function () {
494
+ observeDomChanges();
495
+ observeClassChanges();
496
+ });
497
+ }
495
498
  registerErrorListener();
496
499
  console.log('Configured country:', config.country);
497
500
  if (router) { // 如果提供了路由对象,则设置路由监听器