Pregunta

Estoy tratando de poner el teléfono en funcionamiento en Blackberry Storm (simulador 9530). Había estado probando mi aplicación web desde el navegador incorporado de BB, y se veía bien, pero luego mordió totalmente una vez que intenté ver algún código desde phonegap, a pesar de que estaba apuntando phonegap a la misma url (no había todavía no he llegado al punto de ejecutar código localmente en el dispositivo).

Probé un caso de prueba en google y obtuve resultados similares. vea abajo. Sospecho que me falta algo básico aquí. Hubiera esperado que ambas imágenes fueran casi idénticas.

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

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

[Actualizar] Para arrojar algo de luz sobre lo que está sucediendo, ejecuté el navegador y el navegador integrado (phonegap) contra la prueba de ácido de la web móvil W3: http://www.w3.org/2008/06/mobile-test/ Definitivamente noto diferencias entre los dos, pero todavía no sé el 'por qué' y el 'cómo-direccionar'.

Ácido a través del navegador incorporado
(fuente: eleganttechnologies.com )

Por cierto, ejecuté esto más temprano hoy y obtuve un par más de cuadrados verdes que ahora.

Ácido a través del navegador incrustado en phonegap http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

¿Fue útil?

Solución

Descargo de responsabilidad: no sé nada sobre phonegap, pero tengo una muy buena teoría. De forma predeterminada, el control del navegador integrado en BlackBerry utiliza una versión anterior del motor de representación que el navegador BlackBerry en sí.

En la conferencia de desarrolladores de BlackBerry del año pasado, se dio una charla sobre esto, y hay una opción indocumentada para usar el nuevo motor de renderizado. \

El ID de la opción es 17000 (sí, un número mágico, que podría cambiar, usar bajo su propio riesgo, etc.), y debe establecerse en verdadero. No estoy seguro de cómo pasaría esta opción a través de phonegap (no estoy familiarizado con el kit de herramientas) pero usando las API de BlackBerry es algo así como:

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

Otros consejos

No sé los detalles de los navegadores que está utilizando, pero sí sé que la mayoría de los sitios grandes detectarán su combinación de navegador OS + para decidir qué HTML mostrarle.

Si Google está viendo un agente de usuario diferente, es posible que obtenga una versión móvil genérica del HTML en lugar del HTML específico de Blackberry que obtiene para el navegador integrado.

Si tiene acceso a un servidor web, intente presionarlo con ambas configuraciones del navegador y vea si hay alguna diferencia en el archivo de registro. Eso podría decirle algo interesante.

Como podemos ver en sus pruebas de ácido ...

Un navegador (el incorporado) informa correctamente como BlackBerry9530, y el otro (phonegap) no presenta el agente de usuario [" Pruebas con. "]. En este caso, Google le proporciona la vista predeterminada de su página de inicio, mientras que cuando se informa como un dispositivo BlackBerry, obtendrá la representación específica de BlackBerry.

Por el sonido de las cosas, el uso de phonegap está eliminando el agente de usuario predeterminado (muy probablemente porque no reconoce su dispositivo). Como phonegap es de código abierto, la mejor opción es ingresar allí, depurarlo y descubrir qué sucede con el agente de usuario cuando las solicitudes http abandonan el dispositivo y rastrearlo desde allí.

¿Quizás un navegador tiene capacidades que otro no tiene?

Hm. Al mirar la captura de pantalla, diría que a la segunda página probablemente le faltan algunos recursos. Es posible que falten algunas imágenes, scripts y archivos CSS, lo que explicaría diferentes l & amp; f. Sabiendo cómo funciona Blackberry Browser Field API, supongo que la implementación que usa BrowserField no se realizó correctamente. Solo mi suposición. Además de eso, cuando se inicializa el campo del navegador, la persona que llama debe configurarlo correctamente habilitando las características apropiadas del navegador: scripts, estilos, etc. Una vez más, la API se realiza de una manera muy extraña, me he metido en esta trampa una vez . Al configurar las opciones, no puede simplemente crear una máscara (como CSS | WML | SCRIPT) y hacer una llamada. Las opciones son numéricas y, creo, no se superponen, pero aún debe llamar a la API para configurar cada opción de forma independiente.

También la forma en que la carga asíncrona de los recursos para BrowserField lleva tiempo para comprender.

Solo mis $ 0.02.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top