Может ли Spring Mobile по-разному относиться к iOS и Android?
Spring Mobile позволяет приложению Spring MVC определять, является ли веб-клиент настольным компьютером / ноутбуком, планшетом или мобильным устройством.
Можно ли определить, является ли устройство Android / iOS с помощью Spring Mobile? Есть ли точки расширения для этого, или это будет функциональность "homebrew"?
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 }