Генерация списка поддерживаемых устройств по возможностям WURFL - PullRequest
1 голос
/ 15 июня 2009

Существует ли эффективный способ программной генерации списка поддерживаемых устройств на основе набора необходимых возможностей с использованием API WURFL ?

Например, у меня есть две версии приложения; та, которая работает на телефонах Nokia Series60 версии 2 (Symbian 7/8), а другая версия - на телефонах Nokia Series60 версии 3 (Symbian 9). Мне нужно получить все такие телефоны от WURFL для представления на странице «поддерживаемых телефонов», а также проверить UA пользователей, которые пытаются загрузить, чтобы я мог передать им правильную версию приложения.

Концептуально я думаю, что ищу что-то вроде этого:

return all devices that have capabilities :=
  device_os == Symbian OS  
  &&  nokia_series == 60 
  && (nokia_edition == 2 || nokia_edition == 3)

Я хочу сделать это на Java.

Ответы [ 3 ]

1 голос
/ 17 августа 2011

Все остальные ответы говорили о том, как использовать Java WURFL API. Однако, чтобы ускорить поиск во время выполнения, я бы порекомендовал хранить хеш-карту или словарь в памяти, отображающей строку пользовательского агента (или урезанную версию исходной строки) с соответствующей информацией об устройстве. Общий объем данных не должен быть таким большим - всего лишь порядка мегабайт. Кроме того, данные WURFL довольно статичны, поэтому можно автономно обработать весь набор данных для построения хэш-карты. Я обычно препроцессирую и периодически обновляю хэш-карту, сериализую объект и загружаю его во время выполнения.

1 голос
/ 15 июня 2009

Я предлагаю использовать новый Java WURFL API для загрузки и перемещения по базе данных возможностей. Это довольно гибкий подход, поэтому вы сможете довольно быстро реализовать свой псевдокод.

0 голосов
/ 09 июня 2010

Я не знаю API для этой задачи. Я должен был разобраться с этим сам и в конечном итоге написал общедоступный сайт, чтобы справиться с этим: http://wurfl.ditherandbicker.com/

Поскольку базовый XML-файл WURFL создан для мобильности, матрица полной функциональности устройства должна быть получена путем чтения из переменного числа «резервных устройств». Многие другие проекты на основе WURFL ведут себя так же. По моему опыту, вам действительно нужно перевести стандартную, вложенную структуру данных в плоскую, если вы надеетесь получить приличную скорость при поиске. Конечно, в этот момент вы теряете преимущества мобильности.

...