Actively track user engagement and know when they move away from your page.
npm install --save actively
import Actively from 'actively';
const active = new Actively({
timeIntervalEllapsedCallbacks: [],
absoluteTimeEllapsedCallbacks: [],
browserTabInactiveCallbacks: [],
browserTabActiveCallbacks: [],
idleTimeoutMs: 3000,
checkCallbacksIntervalMs: 250
})
window.addEventListener('mousemove', active.startTimer)
window.addEventListener('beforeunload', active.stopTimer)
import Actively from 'actively';
const active = new Actively({
timeIntervalEllapsedCallbacks: [],
absoluteTimeEllapsedCallbacks: [],
browserTabInactiveCallbacks: [],
browserTabActiveCallbacks: [],
idleTimeoutMs: 3000,
checkCallbacksIntervalMs: 250
})
window.addEventListener('mousemove', active.startTimer)
window.addEventListener('beforeunload', active.stopTimer)
const cb = {
multiplier: time => time + (60 * 5 * 1000), // Every 5 minutes
timeInMilliseconds: 0,
callback: () => {
console.log("Doing Something every 5 minutes")
}
}
active.addTimeIntervalEllapsedCallback(cb)
const callback = () => console.log('Browser going inactive');
active.addBrowserTabInactiveCallback(callback)
var ActiveTimeIntervals = active.times; // array of time periods with user activity
Shows is user is active on current webpage and the timer is running.
Array of timeDurations when the user was active.
Each time duration is
Object({
start: Date,
stop: Date
})
True when the user is inactive on current webpage and the timer is stopped.
Time elapsed(in miliseconds) since the user was last active.
The idle time for a user after which timer stops and user is marked as inactive.
Demo coming soon!
MIT © Gaurav Koley, 2020