Frage

Ich bin tyring auf Blackberry Storm zu bekommen PhoneGap und laufen (9530 Simulator). Ich hatte meine Webapp getestet von withing BB in Browser gebaut, und es war auf der Suche ok, aber dann ist es etwas völlig, wenn ich versuche, von innen phonegap in dem einigen Code zu suchen, auch wenn ich phonegap auf die gleiche URL hinwies (I hadn ‚t noch an den Punkt gelangt Code lokal auf dem Gerät laufen).

Ich habe versucht, einen Testfall auf Google und bekam similiar Ergebnisse. siehe unten. Ich vermute, dass ich etwas Grundsätzliches bin hier fehlt. Ich würde erwarten, dass beiden Bilder fast identisch sein.

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

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

[Update] Um etwas Licht auf, was geschieht, lief ich den Browser und den eingebetteten Browser (phonegap) gegen den W3 mobilen Web-Säure-Test: http://www.w3.org/2008/06/mobile-test/ Ich bemerke definitiv Unterschiede zwischen den beiden, aber ich weiß noch nicht das ‚Warum‘ und ‚How-to-Adresse‘.

Säure über integrierten Browser
(Quelle: eleganttechnologies.com )
BTW -. Ich lief dies heute früher und bekam noch ein paar grünes Quadrat als gerade jetzt

Säure über den Browser in phonegap eingebettet http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

War es hilfreich?

Lösung

Disclaimer: Ich weiß nichts über phonegap, aber eine ziemlich gute Theorie haben. Standardmäßig ist die eingebettete Browser-Steuerung auf Blackberry verwendet eine ältere Version der Rendering-Engine als der Blackberry-Browser selbst tut.

Auf der Blackberry-Entwicklerkonferenz im vergangenen Jahr wurde ein Vortrag über diese gegeben, und es gibt eine nicht dokumentierte Option, das neuere Rendering-Engine zu verwenden. \

Die Option ID ist 17000 (ja, eine magische Zahl, die auf eigenes Risiko usw. verwenden ändern könnte), und sollte auf true gesetzt werden. Nicht sicher, wie Sie diese Option durch phonegap passieren würden (ich bin nicht vertraut mit dem Toolkit), aber unter Verwendung des Blackberry-APIs ist es so etwas wie:

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

Andere Tipps

Ich weiß nicht, die Besonderheiten der Browser Sie verwenden, aber ich weiß, dass die meisten großen Websites erkennt Ihr OS + Browser Kombination zu entscheiden, was HTML Ihnen zu zeigen.

Wenn Google einen anderen User-Agenten zu sehen, könnten Sie eine generische mobile Version des HTML bekommen statt os der Blackberry-spezifischen HTML Sie für den Browser eingebaut bekommen.

Wenn Sie den Zugriff auf einen Webserver haben, versuchen Sie es mit den beiden Browser-Setups schlagen und sehen, ob es einen Unterschied in der Protokolldatei ist. Das könnte Ihnen sagen, etwas Interessantes.

Wie können wir in Ihren Acid Tests sehen ...

Ein Browser (der eingebaute in einem) berichtet, korrekt als BlackBerry9530, und die andere (phonegap) wird der User-Agent nicht präsentiert [ "Testen mit."]. In diesem Fall wird Google Dich mit der Standardansicht ihrer Homepage bereitstellt, während, wenn Sie sich als Blackberry-Gerät berichten, werden Sie das Blackberry-spezifische Rendering erhalten.

Mit den Klängen der Dinge, mit phonegap den Standard User-Agenten ist das Entfernen (wahrscheinlich, weil es das Gerät nicht zu erkennen ist). Als phonegap Open-Source ist, ist die beste Wette in dorthin zu gelangen, und debuggen und herauszufinden, was mit dem User-Agenten passiert, wenn die HTTP-Anfragen das Gerät verlassen und von dort zurück zu verfolgen.

Vielleicht ein Browser hat Fähigkeiten, die ein anderer nicht?

Hm. Mit Blick auf den Screenshot würde ich sagen, dass die zweite Seite wahrscheinlich einige Ressourcen fehlt. Es kann einige Bilder, Skripte und CSS-Dateien fehlen, die verschiedenen l & f erklären würde. Zu wissen, wie Blackberry Browser Feld API funktioniert, würde ich vermuten, dass die Implementierung, die den Browser verwendet nicht korrekt durchgeführt wurde. Nur meine Vermutung. Zusätzlich zu, dass, wenn der Browser Feld der Anrufer initialisiert wird, muss es durch Aktivierung der entsprechenden Browser-Funktionen richtig konfigurieren - Skripte, Stile usw. Auch die API in eine sehr seltsamen Art und Weise geschehen ist, habe ich mich in diese Falle bekam einmal . Wenn die Optionen einstellen, können Sie nicht erstellen Sie einfach eine Maske (wie CSS | WML | SCRIPT) und einen Anruf tätigen. Optionen sind numerisch und, wie ich glaube, nicht überlappende - aber Sie müssen noch die API aufrufen für jede Option unabhängig einstellen.

Auch die Art und Weise asynchrone Laden der Ressourcen für Browser braucht Zeit, um zu verstehen.

Just my $ 0,02.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top