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 +2 -2
- package/package.json +1 -1
- package/tracking.js +42 -38
- package/trackvue3.js +30 -27
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
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
|
-
|
|
429
|
-
|
|
430
|
-
if (
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
hasTrackedPageLeave
|
|
437
|
-
|
|
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
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
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
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
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) { // 如果提供了路由对象,则设置路由监听器
|