terça-feira, 9 de outubro de 2012

ChildBrowser não fecha usando o evento close()

Boa tarde, galera!

Puts... depois de quase 2 dias brigando com o ChildBrowser (classe para uso com o PhoneGap, que abre uma nova janela web dentro do seu app), cheguei numa solução um tanto rápida.

Precisava que o usuário ao se logar com twitter ou facebook e confirmado seu login, o childbrowser fosse fechado usando o seu próprio evento childbrowser.close().

Depois de muito trabalho e nada de funcionar.. segui no debug do arquivo childbrowser.js
onde encontrei este código:

// close the browser, will NOT result in close callback
ChildBrowser.prototype.close = function()
{
    if (typeof PhoneGap !== "undefined")
     {
        PhoneGap.exec("ChildBrowserCommand.close");
    }
    if (typeof Cordova !== "undefined")
    {
        Cordova.exec("ChildBrowserCommand.close");
    }
};
Como o Phonegap passou a ser um projeto pela APACHE então houve uma mudança no namespace da framework para Cordova, sendo assim aqui está verificando qual namespace estou usando.

O em vermelho verificando se é phonegap e em azul se é Cordova, pois bem, por alguma razão ele chamava as 2 verificações e executava a mesma chamada 2 vezes.

Então comentando a parte do PHONEGAP (em vermelho) passou a funcionar o evento close().

Maravilha!

Nenhum comentário:

Postar um comentário