У меня есть функция тайм-аута
var idleTimeOut = 60; // 1 minute
ResetIdleSecondsEvent = function () {
// Reset counter for all listed event
$(document).on("click mousemove keypress touchstart touchend touchcancel touchmove", function () {
_idleSecondsCounter = 0;
})
}
function VerifyTimeOutInterval() {
// Run every seconds to call function and check if current counter is more than
// the preset time
window.setInterval(CheckIdleTime, 1000);
}
function CheckIdleTime() {
// Check timer only predefined timeout value is not 0, null or empty
if (idleTimeOut != "") {
// Increase counter for seconds
_idleSecondsCounter++;
// Check if current counter is more than the preset timeout period
if (_idleSecondsCounter >= idleTimeOut) {
// Notify user that he/she has been automatically logged out
navigator.notification.alert("You have been automatically logged out due " +
"to inactivity. Please login again.", function () { }, "Logged Out", 'OK');
// Navigate to login page
self.navigateLogout();
}
}
}
Это отлично работает в моем приложении, когда пользователь ничего не делает в течение 1 минуты, появляется сообщение о тайм-ауте и переводит пользователя на экран входа в систему.
Но когда пользователь открывает внешнюю ссылку с помощью Inappbrowser и имеет активность, секунды простоя не сбрасываются, появляется сообщение о тайм-ауте и возвращает пользователя для входа в систему. Итак, как мне добавить тот же код в браузер Inapp?
Насколько мне известно, в Inappbrowser есть только события loadstart, loadstop, loaderror и exit. Я попробовал следующий код, чтобы добавить событие в Inappbrowser, но безуспешно.
var inappBrowserObj = window.open(url, '_blank', 'location=yes');
inappBrowserObj.addEventListener('loadstop', ResetIdleSecondsEvent());
inappBrowserObj.addEventListener('loadstop', VerifyTimeOutInterval());
Скажите, пожалуйста, как правильно обрабатывать функцию тайм-аута внутри Inappbrowser.
Спасибо