Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Executa a navegação para URL selecionada

O componente TWebEngine utiliza, no SmartClient Desktop, um Chromium embutido, enquanto no WebApp, ele é um iframe, isso implica em algumas mudanças de comportamento, descritas neste documento.

Sintaxe

Bloco de código
collapsefalse
Navigate( < cUrl > )

...

Nome

Tipo

Descrição

Obrigatório

Referência

cUrl

caractere

Indica a URL a ser executada, em schemas como: http:// https:// ou

file://

Informações importantes sobre o uso do file:// acesse aqui. 

X


Informações
titleVisualização de arquivos PDF


A partir do SmartClient 19.3.1.1 será possivel a visualização de arquivos PDF através do componente TWebEngine utilizando o método navigate:

Mais informações acesse: Melhoria - TWebEngine permite visualização de PDF's

Exemplo:
oWebEngine := TWebEngine():New(oModal, 0, 0, 800, 600)
cUrl := "http://site.com/documento.pdf" // Apenas ilustrativo
oWebEngine:navigate(cUrl)
Aviso
titleWebApp | IMPORTANTE: Protocolo file://

Por motivos de segurança o browser não permite navegação para um arquivo local (file:///dir/file) dentro de um iframe, impedindo o uso deste protocolo no WebApp.

Como contorno, é possivel copiar o arquivo da estação de trabalho para uma pasta temporária no Servidor, utilizando a função CpyF2Web, acessando seu conteudo na sequência, veja o exemplo abaixo:

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
DEFINE DIALOG oDlg TITLE "Contorno para file://" FROM 0,0 TO 800,1200 PIXEL

  // Copia o arquivo da Estacao para o Servidor, retornando seu caminho
  // Este exemplo foi escrito para Linux, ao utilizar em Windows,
  //   basta mudar o caminho para o arquivo, ex: "c:/dir/arquivo"
  cFilePath := CpyF2Web("l:/home/mansano/totvs/file.txt", .T., .F., .F., .F.)
  
  oWebEngine := TWebEngine():New(oDlg, 0, 0, 100, 100,,)
  oWebEngine:Align := CONTROL_ALIGN_ALLCLIENT

  // Executa o Navigate para o arquivo temporario no Servidor
  oWebEngine:navigate(cFilePath)

ACTIVATE DIALOG oDlg CENTERED 
Aviso
titleWebApp | IMPORTANTE: X-Frame-Options to Deny

A maioria dos sites, mesmo o totvs.com ou google.com, impedem seu uso através de um iframe, esta é uma medida de segurança para evitar tentativas de ataque como o Click-jacking, mais informações neste link:

https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/X-Frame-Options  

Exemplo:

Caso haja um navigate para:

oWebEngine:navigate("https://www.google.com/")

Será apresentado o erro abaixo no console do seu navegador:

chromewebdata/:1  Refused to display 'https://www.google.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

Não existe contorno para essa questão, sendo atribuição do provedor (site) definir se seu conteúdo poderá ou não ser exibido através de um iframe.

Caso seja imprescindível para sua aplicação abrir um site com este bloqueio, pode utilizar a função ShellExecute.

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
// Exemplo de uso para Windows
ShellExecute( "open", "http://www.google.com.br", "", "", 1 )
 
// Exemplo de uso para Linux
shellExecute("Browser", "/usr/bin/firefox", "http://www.google.com.br", "/", 1 ) 

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oWebEngine:navigate("http://totvswww.site_qualquer.com.br")