Pergunta

Estou tyring para obter phonegap instalado e funcionando em BlackBerry Storm (9530 simulador). Eu tinha vindo a testar o meu webapp de withing do BB construído em um navegador, e ele estava olhando ok, mas depois totalmente pouco uma vez que eu tentei olhar para a algum código de dentro phonegap, mesmo que eu estava apontando PhoneGap para o mesmo url (I hadn 't ainda chegado ao ponto de executar código localmente no dispositivo).

Eu tentei um caso de teste no Google e obteve resultados similiar. ver abaixo. Eu suspeito que eu estou faltando algo básico aqui. Eu teria que esperar tanto imagens a ser quase idêntico.

Navegador http://www.eleganttechnologies.com/outside/ImgDeviceBB9530WebGoogle.jpg

PhoneGap http://www.eleganttechnologies.com/outside/ImgDeviceBB9530PgGoogle.jpg

[Update] Para lançar alguma luz sobre o que está acontecendo, eu corri o navegador eo navegador embutido (phonegap) contra o teste de ácido web móvel W3: http://www.w3.org/2008/06/mobile-test/ Eu definitivamente Observe as diferenças entre os dois, mas eu ainda não sei o 'porquê' eo 'how-to-address'.

Ácido via navegador embutido
(fonte: eleganttechnologies.com )
BTW -. Eu corri isso mais cedo hoje e quadrado obtido um par mais verde do que apenas agora

Ácido via browser incorporado phonegap http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

Foi útil?

Solução

Disclaimer: Eu não sei nada sobre phonegap, mas tenho uma teoria muito bom. Por padrão, o controle de navegador embutido no BlackBerry usa uma versão mais antiga do motor de renderização do navegador do BlackBerry em si faz.

No BlackBerry conferência de desenvolvedores no ano passado, a palestra foi dada sobre isso, e não há uma opção não documentada de usar o motor de renderização mais recente. \

O ID opção é 17000 (sim, um número mágico, o que poderia mudar, use a seu próprio risco etc), e deve ser definido como verdadeiro. Não sei como você iria passar esta opção através phonegap (eu não estou familiarizado com o kit de ferramentas), mas usando o BlackBerry APIs É algo como:

BrowserContent content;
...
content.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, 17000, true);

Outras dicas

Eu não sei as especificidades dos navegadores que você está usando, mas eu sei que a maioria dos grandes sites irá detectar a sua combinação + navegador OS para decidir o HTML para mostrar a você.

Se o Google está vendo um agente de usuário diferente, que você pode obter uma versão móvel genérico do HTML em vez OS o HTML específico Blackberry você começa para o construída no navegador.

Se você tiver acesso a um servidor web, tentar bater-lo com ambas as configurações do navegador e ver se há alguma diferença no arquivo de log. Isso pode lhe dizer uma coisa interessante.

Como podemos ver em seus testes Acid ...

Um navegador (o built-in um) está informando corretamente como um BlackBerry9530, eo outro (phonegap) não está apresentando o user-agent [ "Testing com."]. Neste caso, o Google está fornecendo o modo de exibição padrão da página inicial, enquanto que quando você está reportando-se como um dispositivo BlackBerry, você terá a rendering específica BlackBerry.

Por os sons de coisas, usando PhoneGap é remover o padrão user-agent (provavelmente porque não reconhecer o dispositivo). Como phonegap é open-source, a melhor aposta é para chegar lá, e depurá-lo e descobrir o que acontece com o user-agent quando as solicitações HTTP deixar o dispositivo e segui-lo de lá.

Talvez um navegador tem capacidades que outro não?

Hm. Ao olhar para a imagem, eu diria que a segunda página é provavelmente faltando alguns recursos. Pode estar faltando algumas imagens, scripts e os arquivos CSS, o que explicaria diferente l & f. Saber como Blackberry navegador API para trabalhos de campo, eu acho que a implementação que usa o BrowserField não foi feito corretamente. Apenas o meu palpite. Além disso, quando o campo do navegador é inicializado as necessidades de chamadas para configurá-lo corretamente, permitindo que os recursos do navegador apropriadas - scripts, estilos etc. Novamente, a API é feito de uma forma muito estranha, eu me metido nessa armadilha uma vez . Ao configurar as opções, você não pode simplesmente criar uma máscara (como CSS | WML | SCRIPT) e fazer uma chamada. Opções são numéricas e, creio eu, não sobrepostas - mas você ainda precisa chamar a API para definir cada opção de forma independente.

Também a forma como o carregamento assíncrono dos recursos para BrowserField leva tempo para entender.

Apenas meus $ 0,02.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top