Created
October 23, 2017 16:24
-
-
Save claudiohilario/9423a087f05550bd3bf6ca4581191ec9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* globals console,document,window,cordova */ | |
document.addEventListener('deviceready', onDeviceReady, false); | |
/** | |
* Objeto de compatibilidade | |
* window.logToFile.info('Olá, entrou!'); | |
*/ | |
var logToFile = { | |
info: function (text, tipo = 'INFO') { | |
window.writeLog(text, tipo); | |
} | |
} | |
//Objeto log | |
var logOb; | |
function fail(e) { | |
console.log("FileSystem Error"); | |
console.dir(e); | |
} | |
function onDeviceReady() { | |
//localStorage.removeItem("log_file"); | |
alert(window.localStorage.getItem("log_file")); | |
if (window.localStorage.getItem("log_file") === null) { | |
//Ficheiro de Log não existe | |
//Define um nome com timestamp | |
var logFileName = 'log_' + Math.floor(Date.now() / 1000) + '_.txt'; | |
//Cria ficheiro de log | |
createLogFile(logFileName); | |
//Atualiza o storage | |
window.localStorage.setItem("log_file", logFileName); | |
} else { | |
//Ficheiro de Log existe | |
//Vai buscar o nome do ficheiro da storage | |
var logFileName = window.localStorage.getItem("log_file"); | |
alert('Teste'); | |
alert(logFileValidate(logFileName, 10)); | |
//Verifica a validade do ficheiro de log (10 dias) | |
if (logFileValidate(logFileName, 10)) { | |
//Válido | |
//Grava log no ficheiro | |
createLogFile(logFileName) | |
} else { | |
//Apaga o ficheiro | |
removeLogFile(logFileName); | |
//Criar um novo ficheiro atualizado | |
//Cria um novo nome de ficheiro atualizado | |
logFileName = 'log_' + Math.floor(Date.now() / 1000) + '_.txt'; | |
//Cria novo ficheiro atualizado | |
createLogFile(logFileName); | |
window.localStorage.setItem("log_file", logFileName); | |
} | |
} | |
document.querySelector("#actionOne").addEventListener("touchend", function (e) { | |
window.logToFile.info('Entrou na 1ª Opção'); | |
}, false); | |
document.querySelector("#actionTwo").addEventListener("touchend", function (e) { | |
window.logToFile.info('Entrou na 2ª Opção!'); | |
}, false); | |
} | |
function createLogFile(logFileName) { | |
window.resolveLocalFileSystemURL(cordova.file.documentsDirectory, function (dir) { | |
console.log("Entrou no diretorio:", dir); | |
dir.getFile(logFileName, { create: true }, function (file) { | |
console.log("Obteve ficheiro", file); | |
logOb = file; | |
}); | |
}); | |
} | |
function removeLogFile(logFileName) { | |
window.resolveLocalFileSystemURL(cordova.file.documentsDirectory, function (dir) { | |
console.log("Entrou no diretorio:", dir); | |
dir.getFile(logFileName, { create: false }, function (file) { | |
console.log("Obteve ficheiro", file); | |
//logOb = file; | |
file.remove(function () { | |
//Removido com sucesso | |
}, function (error) { | |
//Erro ao remover ficheiro | |
}, function () { | |
//Ficheiro nao existe! | |
}); | |
}); | |
}); | |
} | |
function writeLog(str, tipo = 'INFO') { | |
if (!logOb) return; | |
var data = new Date(); | |
var log = data.getFullYear() + '-' + (data.getMonth() + 1) + '-' + data.getDate() + ' ' + data.getHours() + ':' + data.getMinutes() + ':' + data.getSeconds() + '.' + data.getMilliseconds() + ' : ' + tipo + ' : ' + str + '\n'; | |
logOb.createWriter(function (fileWriter) { | |
fileWriter.seek(fileWriter.length); | |
var blob = new Blob([log], { type: 'text/plain' }); | |
fileWriter.write(blob); | |
console.log("Adicionou ao ficheiro log!"); | |
}, fail); | |
} | |
/** | |
* Permite verificar se o ficheiro de logs é limpo ou não | |
* @param {any} nome_ficheiro | |
* @param {any} dias_validade | |
*/ | |
function logFileValidate(nome_ficheiro, dias_validade) { | |
//Timestamp atual em segundos | |
var timestamp = Math.floor(Date.now() / 1000); | |
//Timestamp guardado no ficheiro | |
var timestamp_log = nome_ficheiro.split("_"); | |
//Timestamp da criação do ficheiro + tempo de validade em dias | |
//timestamp_log_lim_sup = parseInt(timestamp_log[1]) + (86400 * dias_validade); | |
var timestamp_log_lim_sup = parseInt(timestamp_log[1]) + (20); | |
//Se estiver válido | |
if (timestamp_log_lim_sup - timestamp > 0) { | |
//Grava log no ficheiro | |
return true; | |
} else { | |
//Limpa ficheiro e grava | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment