Почему google.com выглядит по-разному на blackberry & phonegap по сравнению с blackberry & browser - PullRequest
3 голосов
/ 08 мая 2009

Я стараюсь, чтобы телефонная щель заработала на Blackberry Storm (симулятор 9530). Я тестировал свое веб-приложение, не используя встроенный в BB браузер, и оно выглядело нормально, но потом оно полностью сломалось, как только я попытался взглянуть на некоторый код из phonegap, хотя я указывал на phonegap тот же URL-адрес (у меня не было еще не дошел до точки запуска кода локально на устройстве).

Я попробовал тестовый пример в Google и получил похожие результаты. увидеть ниже. Я подозреваю, что мне здесь чего-то не хватает. Я бы ожидал, что оба изображения будут почти идентичны.

Браузер http://www.eleganttechnologies.com/outside/ImgDeviceBB9530WebGoogle.jpg

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

[Обновление] Чтобы пролить свет на происходящее, я настроил браузер и встроенный браузер (пробел в телефоне) на тест W3 для мобильных веб-приложений: http://www.w3.org/2008/06/mobile-test/ Я определенно замечаю различия между ними, но я еще не знаю, «почему» и «как обратиться».

Кислота через встроенный браузер
(источник: Eleganttechnologies.com )
Кстати, сегодня я пробежал это раньше и получил на пару больше зеленых квадратов, чем сейчас.

Кислота через браузер, встроенный в телефонную пробку http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

Ответы [ 5 ]

4 голосов
/ 11 мая 2009

Отказ от ответственности: я ничего не знаю о разрывах в телефоне, но у меня довольно хорошая теория. По умолчанию встроенный элемент управления браузером в BlackBerry использует более старую версию механизма визуализации, чем сам браузер BlackBerry.

На конференции разработчиков BlackBerry в прошлом году был рассказан об этом, и есть недокументированная возможность использовать более новый механизм рендеринга. \

Идентификатор опции 17000 (да, магическое число, которое можно изменить, использовать на свой страх и риск и т. Д.), И для него должно быть установлено значение true. Не уверен, как вы передадите эту опцию через пробел в телефоне (я не знаком с инструментарием), но при использовании API BlackBerry это выглядит примерно так:

BrowserContent content;
...
content.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, 17000, true);
2 голосов
/ 08 мая 2009

Я не знаю специфики браузеров, которые вы используете, но я знаю, что большинство крупных сайтов будут определять вашу комбинацию ОС + браузер, чтобы решить, какой HTML вам показывать.

Если Google видит другого агента пользователя, вы можете получить общую мобильную версию HTML вместо специального HTML-кода Blackberry, который вы получаете для встроенного браузера.

Если у вас есть доступ к веб-серверу, попробуйте подключиться к нему с обоими настройками браузера и посмотрите, есть ли какая-либо разница в файле журнала. Это может рассказать вам кое-что интересное.

1 голос
/ 08 мая 2009

Как мы видим в ваших кислотных тестах ...

Один браузер (встроенный) правильно сообщает как BlackBerry9530, а другой (пробел) не представляет пользовательский агент ["Тестирование с помощью."]. В этом случае Google предоставляет вам представление по умолчанию своей домашней страницы, тогда как, когда вы сообщаете о себе как о устройстве BlackBerry, вы получаете специфичный для BlackBerry рендеринг.

Судя по всему, использование phonegap удаляет пользовательский агент по умолчанию (скорее всего, потому что он не распознает ваше устройство). Поскольку phonegap имеет открытый исходный код, лучше всего зайти туда, отладить его и выяснить, что происходит с пользовательским агентом, когда http-запросы покидают устройство, и отследить его оттуда.

0 голосов
/ 27 октября 2011

Hm. Глядя на скриншот, я бы сказал, что на второй странице, вероятно, отсутствуют некоторые ресурсы. Возможно, отсутствуют некоторые изображения, скрипты и CSS-файлы, которые объясняли бы разные l & f. Зная, как работает Blackberry Browser Field API, я могу предположить, что реализация, использующая BrowserField, была выполнена неправильно. Просто мое предположение. В дополнение к этому, когда поле браузера инициализируется, вызывающий должен настроить его должным образом, включив соответствующие функции браузера - скрипты, стили и т. Д. Опять же, API сделан очень странным образом, я однажды попал в эту ловушку , При установке параметров вы не можете просто создать одну маску (например, CSS | WML | SCRIPT) и сделать один вызов. Параметры являются числовыми и, я полагаю, не перекрываются, но вам все равно необходимо вызвать API для настройки каждого параметра независимо.

Кроме того, способ асинхронной загрузки ресурсов для BrowserField требует времени для понимания.

Только мои 0,02 доллара.

0 голосов
/ 08 мая 2009

Может быть, у одного браузера есть возможности, которых нет у другого?

...