4D v16.3Gestão programada de áreas web |
||
|
4D v16.3
Gestão programada de áreas web
Gestão programada de áreas web
Os comandos deste tema são dedicados a gestão programada de objetos de formulário de tipo área web. As áreas web podem mostrar todo tipo de conteúdo web mesmo dentro do ambiente 4D: as páginas HTML com conteúdos estáticos ou dinâmicos, arquivos, imagens, Javascript, etc. A imabem abaixo mostra uma área Web incluída em um formulário e exibe uma página HTML: (*) Entretanto, o uso de plugins Web e Java applets não é recomendado (ver Notas sobre uso de áreas Web). Além dos comandos do tema web Area, várias ações e eventos de formulários dedicados permitem ao desenvolvedor controlar o funcionamento das áreas web. Podem ser utilizadas variáveis específicas para intercambiar informação entre a área e o ambiente 4D. Estas ferramentas podem ser utilizadas para desenvolver um navegador web básico em seus formulários. A criação de um área web se realiza com a ajuda de uma variante do botão Area de plug-im/Sub-formulário da barra de objetos do editor de formulários de 4D (para maior informação, consulte a seção Área Web no manual de Desenho). Nota: quando é mostrada uma área web em um novo processo, em particular, uma criada com o comando New process, é necessário definir o valor padrão (0) para o parâmetro pilha para assegurar sua exibição correta. Como os outros objetos dinâmicos do formulário, uma área web dispõe de um nome de objeto e de um nome de variável, que podem ser utilizados para manejá-la por programação. A variável padrão associada ao objeto área web é de tipo Texto. Especificamente, pode utilizar os comandos OBJECT SET VISIBLE e OBJECT MOVE com as áreas web. Nota: a variável Texto associada a área web não contém uma referência portanto não pode ser passada como parâmetro a um método. Por exemplo, para uma área web chamada MinhaArea, não pode ser utilizado o seguinte código: MeuMetodo(MinhaArea) Código para MeuMétodo: WA REFRESH CURRENT URL($1) `Não funciona Para este tipo de programação, precisará utilizar ponteiros: MeuMetodo(->MinhaArea) Código de MeuMetodo: WA REFRESH CURRENT URL($1->) `Funciona Além das variáveis de objetos padrão (ver parágrafo anterior), duas variáveis específicas são associadas automaticamente a cada área web:
A variável "URL" é de tipo string. Contém a URL carregada ou que está sendo carregada pela área web associada.
A variável URL produz os mesmos efeitos que o comando WA OPEN URL. Entretanto devem levar em consideração as seguintes diferenças:
"Progresso" é uma variável de tipo Inteiro longo. Contém um valor entre 0 e 100, representa a porcentagem de carregamento completo da página mostrada na área web. Esta variável é atualizada automaticamente por 4D. Não é possível modificá-la manualmente. Pode chamar aos métodos 4D desde o código JavaScript executado em uma área web e obter valores em troca. Para poder chamar aos métodos 4D de uma área web, deve selecionar a opção Acesso métodos 4D para a área na Lista de propriedades: Quando a opção Acesso a métodos 4D está selecionada, a Web Kit integrada de 4D da a área um objeto JavaScript chamado $4d que pode ser associado com qualquer método projeto 4D utilizando a notação objeto ".". $4d.HelloWorld(); Atenção: JavaScript diferencia entre maiúsculas e minúsculas, porque que é importante ter em conta que o objeto se chama $4d (com "d" minúscula). $4d.4DMethodName(param1,paramN,function(result,error){})
Dado um método projeto 4D chamado today que não recebe parâmetros e devolve a data atual como uma cadeia. C_TEXT($0) Na área web, o método 4D pode ser chamado com a seguinte sintaxe: $4d.today() O método 4D não recebe nenhum parâmetro mas devolve o valor de $0 a função de retro chamada chamada por 4D depois da execução do método. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> $4d.today(function(dollarZero) { var curDate = dollarZero; document.getElementById("mydiv").innerHTML=curDate; }); </script> </head> <body>Today is: <div id="mydiv"></div> </body> </html> O método projeto 4D calcSum recebe os parâmetros ($1...$n) e devolve sua soma de $0: Código 4D do método calcSum: C_REAL(${1}) // recebe nos parâmetros de tipo REAL O código JavaScript que executará na área web é: $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero) { var result = dollarZero // resultado é 262.5 }); Os eventos formulário específicos estão destinados a gestão programada de áreas web, particularmente a ativação de links:
Além disso, as áreas web são compatíveis com os eventos de formulário genéricos abaixo:
Para maior informação sobre estes eventos, consulte a descrição do comando Form event Pode ver e utilizar o inspetor web dentro das áreas web de seus formulários. O inspetor web é o depurador que é oferecido com o motor Web, que analisa o código e o fluxo de informação das páginas web. As seguintes condições devem ser cumpridas para poder ver o inspetor web em uma área web:
WA SET PREFERENCE(*;"WA";WA enable Web inspector;True) Para obter mais informação, consulte a descrição do comando WA SET PREFERENCE. Quando tenha realizado os ajustes como foi descrito acima, você terá a nova opção Inspecionar Elemento no menu contextual da área:
Durante a execução do formulário, o usuário dispõe das funções de interface padrão dos navegadores no área web, lo qual permite a interação com as outras áreas do formulário:
Por razões relacionadas com os mecanismos de redesenho de janela, a inserção de uma área Web em um subformulário está sujeita às restrições abaixo:
Em Windows, não é recomendável acessar através de uma área web ao servidor web da aplicação 4D, que contém essa área, porque essa configuração pode provocar um conflito que paralize a aplicação. Logicamente, um 4D remoto pode acessar ao servidor web do 4D Server, mas não a seu próprio servidor web. Usando plugins web e applets Java não é recomendado para áreas web, porque eles podem levar à instabilidade na operação de 4D, particularmente ao nível da gestão de eventos. Os URLs administrados por programação em áreas web em Mac OS devem começar pelo protocolo. Por exemplo, deve passar a string "http://www.meusite.com" e não apenas "www.meusite.com".
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
Manual de linguagem 4D ( 4D v16) |