Boa tarde!
Não sei se seria este o problema... mas tenho usado e tem funcionado...
Local aCoors := FWGetDialogSize(oDlg)
// WebSocket (comunicacao AdvPL x JavaScript)
oWebChannel := TWebChannel():New()
oWebChannel:bJsToAdvpl := {|self,key,value| jsToAdvpl(self,key,value) }
oWebChannel:connect()
// WebEngine (chromium embedded)
oWebEngine := TWebEngine():New(oDlg,aCoors[1], aCoors[2] , (aCoors[3]) - aCoors[1] -200, (aCoors[4]) - aCoors[2]-200,/*cUrl*/,oWebChannel:nPort)
oWebEngine:Align := CONTROL_ALIGN_ALLCLIENT
// WebComponent de teste
tmp := GetTempPath()
mainHTML := tmp + lower("arquivo") + ".html"
oWebEngine:navigate(;
iif(getOS()=="UNIX", "file://", "")+;
mainHTML)
// bLoadFinished sera disparado ao fim da carga da pagina
// instanciando o bloco de codigo do componente, e tambem um customizado
oWebEngine:bLoadFinished := {|webengine, url| OnInit(webengine, url),;
myLoadFinish(webengine, url) }
acredito que va precisar do da Static function que peguei em garimpos...
/*/-----------------------------------------------------------------/
Retorna o Sistema Operacional em uso
/-------------------------------------------------------------------*/
static function getOS()
local stringOS := Upper(GetRmtInfo()[2])
if ("ANDROID" $ stringOS)
return "ANDROID"
elseif ("IPHONEOS" $ stringOS)
return "IPHONEOS"
elseif GetRemoteType() == 0 .or. GetRemoteType() == 1
return "WINDOWS"
elseif GetRemoteType() == 2
return "UNIX" // Linux ou MacOS
elseif GetRemoteType() == 5
return "HTML" // Smartclient HTML
endif
return ""
Em resumo... é usado File:// somente quando for Unix.. se for Windows nao precisa..
Espero ter ajudado..
Att
Tiago, acabei de fazer esse teste, igual o seu e funcionou corretamente, poderia dar mais informações? Procure atualizar os seus artefatos binários para verificar se isso passa a funcionar.
— Daniel Mendes 15 de Aug de 2021