Perché google.com ha un aspetto diverso su blackberry & amp; phonegap vs. blackberry & amp; del browser

StackOverflow https://stackoverflow.com/questions/838069

Domanda

Sto tentando di far funzionare il phonegap su blackberry storm (simulatore 9530). Avevo testato la mia webapp con il browser integrato di BB, e sembrava ok, ma poi mi è sembrato totalmente una volta che ho provato a guardare un po 'di codice all'interno di phonegap, anche se stavo puntando phonegap allo stesso url (non avevo sono ancora arrivato al punto di eseguire il codice localmente sul dispositivo).

Ho provato un caso di test su Google e ho ottenuto risultati simili. vedi sotto. Sospetto che qui manchi qualcosa di essenziale. Mi sarei aspettato che entrambe le immagini fossero quasi identiche.

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

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

[Aggiornamento] Per far luce su ciò che sta accadendo, ho eseguito il browser e il browser incorporato (phonegap) contro il test dell'acido web mobile W3: http://www.w3.org/2008/06/mobile-test/ Sicuramente noto differenze tra i due, ma non conosco ancora il "perché" e il "come affrontare".

Acido tramite browser integrato
(fonte: eleganttechnologies.com )
A proposito, l'ho gestito prima oggi e ho ottenuto un paio di quadrati più verdi di adesso.

Acido tramite browser incorporato in phonegap http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

È stato utile?

Soluzione

Disclaimer: non so nulla di phonegap, ma ho una buona teoria. Per impostazione predefinita, il controllo browser incorporato su BlackBerry utilizza una versione precedente del motore di rendering rispetto al browser BlackBerry stesso.

Alla conferenza degli sviluppatori BlackBerry dell'anno scorso, è stato tenuto un discorso su questo, e c'è un'opzione non documentata per usare il motore di rendering più recente. \

L'ID opzione è 17000 (sì, un numero magico, che potrebbe cambiare, utilizzare a proprio rischio, ecc.), e dovrebbe essere impostato su true. Non sono sicuro di come passare questa opzione tramite phonegap (non ho familiarità con il toolkit) ma l'utilizzo delle API BlackBerry è simile a:

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

Altri suggerimenti

Non conosco le specifiche dei browser che stai utilizzando, ma so che la maggior parte dei grandi siti rileverà la tua combinazione di browser OS + per decidere quale HTML mostrare.

Se Google vede un diverso user agent, potresti ottenere una versione mobile generica dell'HTML invece del codice HTML specifico di Blackberry che ottieni per il browser integrato.

Se hai accesso a un server web, prova a colpirlo con entrambe le impostazioni del browser e vedi se c'è qualche differenza nel file di registro. Questo potrebbe dirti qualcosa di interessante.

Come possiamo vedere nei tuoi test sugli acidi ...

Un browser (quello incorporato) riporta correttamente come BlackBerry9530 e l'altro (phonegap) non presenta lo user-agent [" Testing with. "]. In questo caso, Google ti fornisce la visualizzazione predefinita della loro homepage, mentre quando ti riferisci come dispositivo BlackBerry, otterrai il rendering specifico di BlackBerry.

A giudicare dalle cose, usare phonegap sta rimuovendo l'agente utente predefinito (molto probabilmente perché non riconosce il tuo dispositivo). Dato che phonegap è open-source, la soluzione migliore è entrare lì, eseguirne il debug e scoprire cosa succede con l'agente utente quando le richieste http lasciano il dispositivo e rintracciano da lì.

Forse un browser ha capacità che un altro no?

Hm. Guardando lo screenshot direi che probabilmente nella seconda pagina mancano alcune risorse. Potrebbero mancare alcune immagini, script e file CSS, il che spiegherebbe differenti l & amp; f. Sapendo come funziona l'API Field Blackberry Browser, immagino che l'implementazione che utilizza BrowserField non sia stata eseguita correttamente. Solo la mia ipotesi. Inoltre, quando il campo del browser viene inizializzato, il chiamante deve configurarlo correttamente abilitando le funzionalità appropriate del browser - script, stili ecc. Ancora una volta, l'API viene eseguita in un modo molto strano, mi sono messa in questa trappola una volta . Quando si impostano le opzioni, non è possibile creare una sola maschera (come CSS | WML | SCRIPT) ed effettuare una chiamata. Le opzioni sono numeriche e, credo, non sovrapposte, ma è comunque necessario chiamare l'API per impostare ciascuna opzione in modo indipendente.

Anche il modo in cui il caricamento asincrono delle risorse per BrowserField richiede tempo per capire.

Solo i miei $ 0,02.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top