WebBrowser e JavaScript no Magic xpa

Eis que você vai exibir uma página web no seu sistema Magic xpa  

através do controle WebBrowser, e então: um popup de erro JavaScript aparece…

Quando utilizamos o controle WebBrowser em um programa Magic xpa, seja ele On-Line ou RIA, muito provavelmente uma instância do Internet Explorer será criada no momento da execução, para dar vida a este controle e controlar toda a navegação web.

É o padrão do MS-Windows para estas situações, e não é exclusividade do Magic xpa. Esse é o padrão para todo tipo de programa interativo deste SO.

E muitas vezes, especialmente acessando sites mais modernos que fazem uso dos novos recursos web disponíveis hoje em dia, uma mensagem deste tipo pode ser apresentada:

Uma, ou várias, telas de popup de erros JavaScript  ficam aparecendo e a página não é exibida corretamente.

Ocorre que, independente da versão do IE que você possua na máquina no momento, ele (IE) pode ter sido instanciado numa versão inferior para compatibilidade. Versão esta que não oferece suporte a estes novos recursos e padrões web mais modernos.

Por exemplo: seu IE pode ser o 11 mas no momento da criação do controle WebBrowser o MS-Windows pode ter decidido criá-lo em compatibilidade com a versão 8. E a versão 8 não consegue exibir a contento o site que você precisa. Mas conseguiria se ele estivesse na versão 11 quando executando dentro do seu programa.

Para contornar estas situações, a MicroSoft criou configurações especiais no registro do MS-Windows para o IE.

São elas:

HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
HKCU\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

Você escolhe aquela que mais lhe convier, baseado no escopo da alteração (para todos ou só para o usuário atual) e na versão do Magic xpa (32 ou 64 bits).

A configuração consiste em criar uma entrada do tipo DWORD, onde a “chave” é o nome do programa executável, e o “valor” é a versão desejada para o IE instanciado como WebBrowser embutido.

Considerando que os executáveis do Magic xpa são:

MgxpaStudio.exe
MgxpaRuntime.exe
MgxpaRIA.exe

Esta seria a configuração para forçar a versão 11 (exemplo) do IE quando este fosse executado dentro de um programa Magic:

NOTA: Você pode aprender mais sobre o “FEATURE_BROWSER_EMULATION” neste endereço: https://blog.malwarebytes.com/101/2016/01/a-brief-guide-to-feature_browser_emulation/

Pronto. Da próxima vez que o Magic xpa for iniciado e o programa executado, não haverá mais erros por conta deste tipo de incompatibilidade:

NOTA: Por ser esta uma configuração em nível de SO, no registro do MS-Windows, precisa ser aplicada na máquina de cada usuário da aplicação, inclusive nos sistemas RIA.

Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil
Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil

Para receber os artigos do Blog Magic Brasil em primeira mão no seu email, registre-se aqui

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *