Может ли Spring Mobile по-разному относиться к iOS и Android?


Spring Mobile позволяет приложению Spring MVC определять, является ли веб-клиент настольным компьютером / ноутбуком, планшетом или мобильным устройством.

Можно ли определить, является ли устройство Android / iOS с помощью Spring Mobile? Есть ли точки расширения для этого, или это будет функциональность "homebrew"?

2 2

2 ответа:

Spring Mobile не включает встроенную поддержку для разграничения Android и iOS. Однако он включает в себя два интерфейса, Device и DeviceResolver. Вы можете реализовать пользовательские версии этих устройств, которые обнаруживают устройства Android и iOS и предлагают дополнительные методы, такие как isAndroid() или isIOS(), например. Затем вы можете настроить DeviceResolverHandlerInterceptor для использования вашей реализации DeviceResolver. Когда вы используете обнаруженное устройство в Controller , Вы можете просто привести его к своей реализации. Просмотрите предоставленные LiteDevice и LiteDeviceResolver реализации для вдохновения.

Я знаю, что этот билет довольно старый, но я просто хотел сообщить вам, что это возможно с более новыми версиями spring-mobile-device.

В последней версии 1.1.5.Релиз вы можете легко получить доступ к DevicePlatform устройства. Видишь https://github.com/spring-projects/spring-mobile/blob/1.1.5.RELEASE/spring-mobile-device/src/main/java/org/springframework/mobile/device/DevicePlatform.java

Итак, если вы используете 1.1.5.Отпустите, вы можете легко сделать что-то вроде этого:

if (currentDevice.isNormal()) {
  // do stuff for desktop devices
} elseif (currentDevice.getDevicePlattform() == DevicePlatform.IOS) {
  // do iOS specific stuff
} else {
  // treat as mobile device
}