Uma das dúvidas que correm o mudo flex, é saber quando o usuário desconecta-se. Esta ação é util para registrar quanto tempo permaneceu on-line ou para fazer logof deste usuário.
Pelo Flex isso não é possível pois assim que o browser é fechado o próprio browser destrói a instância do Flash Player e não há como executar nenhuma ação.
Mais há uma saída.
No JavaScript há um método chamado onUnload
que invoca uma ação assim que a aba ou o browser é fechado.
Então vamos fazer assim: Dentro da pasta html-templates
há um arquivo chamado index.template.html
, renomeei para ${application}.template.php
. Agora abra este arquivo para edição. Localize a tag <body
que deve estar assim:
<body scroll="no">
Adicione a seguinte instrução:
<body scroll="no" onUnload="document.getElementById('frameonunload').src='logof.php'">
Neste mesmo arquivo adicione o Iframe a seguir antes de fechar o tag </body>
.
<iframe width="0" marginwidth="0" height="0" marginheight="0" scrolling="no" border="0" id="frameonunload"></iframe>/* Não coloco estilo para deixa-lo invisível pois neste caso alguns browser não renderizam html invisível e ocorrerá erro de chamada. Este com iframe funcionou em todos os browser, inclusive no IE-ca6. Se travar não funciona. */
Agora dentro da pasta html-templates
crie um arquivo chamado logof.php
e adicione os métodos que devem ser invocados quando fechar o browser. No meu caso criei-o assim:
<php require_once("com/eduardokraus/Usuario.php"); $usuario = new usuario(); $usuario->logof(); ?>
Dentro da classe Usuario
há um método logof que reconhece o usuário e o desconecta.