Objeto UniSession

UniSession retorna uma instância da classe TUniGUISession para a sessão atual. Ela contém todas as informações relacionadas a uma sessão (por exemplo: Endereço IP, User Agent, Endereço do Host, dados relacionados à Plataforma, etc.). UniSession também contém métodos importantes que podem ser usados para controlar uma sessão (por exemplo, Terminate para encerrar uma sessão).

Exemplo — encerrar a sessão atual:

TMainForm.UniButton2Click
procedure TMainForm.UniButton2Click(Sender: TObject);
begin
  UniSession.Terminate; // Encerra a sessão atual
end;

Exemplo — redirecionar a janela atual para um novo local:

TMainForm.UniButton2Click
procedure TMainForm.UniButton2Click(Sender: TObject);
begin
  // Redireciona a janela atual para um novo local
  UniSession.UrlRedirect('http://www.newsite.com');
end;

Como UniApplication, UniSession retorna uma instância válida apenas quando acessado a partir de um manipulador de eventos de controle uniGUI — ou seja, controles que pertencem a uma sessão. Por exemplo, uma instância TUniButton sempre pertence a uma sessão:

TMainForm.UniButton2Click
procedure TMainForm.UniButton2Click(Sender: TObject);
var
  IPAddress: string;
begin
  // Estamos em um manipulador de eventos de um TUniButton, então UniSession
  // pode ser acessado aqui.
  IPAddress := UniSession.RemoteIP;
end;

Aviso: acessar UniSession a partir de código que não está associado a uma sessão falhará. No exemplo abaixo, acessar UniSession causará uma violação de acesso porque UniThreadTimer não é um controle uniGUI e seus eventos não estão associados a nenhuma sessão. Os eventos de UniThreadTimer são executados assincronamente em uma thread separada.

UniSession é um objeto "global" que pode retornar valores diferentes quando acessado a partir de sessões diferentes. Este é o mesmo comportamento de UniApplication; UniSession é na verdade uma função global declarada em uniGUIApplication.pas que retorna a instância de sessão correta quando chamada dentro de um manipulador de eventos.

Trecho relevante da unit:

Link de referência (documentação original): https://unigui.com/doc/online_help/index.html?unisession-object.htm