desenvolvendo em Spring mobile...

 

Spring Mobile

 Spring Mobile é uma estrutura que fornece recursos para detectar o tipo de dispositivo que faz uma solicitação ao seu site Spring e servir visualizações alternativas com base nesse dispositivo. Como todos os projetos Spring, o verdadeiro poder do Spring Mobile é encontrado na facilidade com que pode ser estendido.

Características

  • Uma abstração do resolvedor de dispositivos para detecção do lado do servidor de dispositivos móveis e tablets

  • Gerenciamento de preferência de site que permite ao usuário indicar se ele prefere uma experiência “normal”, “móvel” ou “tablet”

  • Um alternador de site capaz de mudar o usuário para o site mais apropriado, seja celular, tablet ou normal, com base em seu dispositivo e preferência de site opcionalmente indicada

  • Gerenciamento de visualização com reconhecimento de dispositivo para organizar e gerenciar visualizações diferentes para dispositivos específicos

Spring Boot Config

Para usar Spring Mobile, adicione a seguinte dependência ao seu aplicativo

Maven
<dependencies>
    <dependency>
        <groupId>org.springframework.mobile</groupId>
        <artifactId>spring-mobile-device</artifactId>
        <version>2.0.0.M3</version>
    </dependency>
</dependencies><repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/libs-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
Gradle
dependencies {
    compile 'org.springframework.mobile:spring-mobile-device:2.0.0.M3'
}repositories {
    maven {
        url 'https://repo.spring.io/libs-milestone'
    }
}

Detecção de dispositivo

Adicione a seguinte configuração baseada em Java para habilitar a detecção de dispositivo em um aplicativo da web Spring:

@Bean
public DeviceResolverHandlerInterceptor
        deviceResolverHandlerInterceptor() {
    return new DeviceResolverHandlerInterceptor();
}

@Bean
public DeviceHandlerMethodArgumentResolver
        deviceHandlerMethodArgumentResolver() {
    return new DeviceHandlerMethodArgumentResolver();
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(deviceResolverHandlerInterceptor());
}

@Override
public void addArgumentResolvers(
        List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(deviceHandlerMethodArgumentResolver());
}

Injete Deviceem seu controlador:

@Controller
public class HomeController {

    private static final Logger logger =
            LoggerFactory.getLogger(HomeController.class);

    @RequestMapping("/")
    public void home(Device device) {
        if (device.isMobile()) {
            logger.info("Hello mobile user!");
        } else if (device.isTablet()) {
            logger.info("Hello tablet user!");
        } else {
            logger.info("Hello desktop user!");
        }
    }

}

Preferência de local

Adicione a seguinte configuração baseada em Java para habilitar o gerenciamento de preferência de site em um aplicativo da web Spring:

@Bean
public DeviceResolverHandlerInterceptor
        deviceResolverHandlerInterceptor() {
    return new DeviceResolverHandlerInterceptor();
}

@Bean
public SitePreferenceHandlerInterceptor
        sitePreferenceHandlerInterceptor() {
    return new SitePreferenceHandlerInterceptor();
}

@Bean
public SitePreferenceHandlerMethodArgumentResolver
        sitePreferenceHandlerMethodArgumentResolver() {
    return new SitePreferenceHandlerMethodArgumentResolver();
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(deviceResolverHandlerInterceptor());
    registry.addInterceptor(sitePreferenceHandlerInterceptor());
}
@Override
public void addArgumentResolvers(
        List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(sitePreferenceHandlerMethodArgumentResolver());
}

Injete SitePreferenceem seu controlador:

@Controller
public class HomeController {

    private static final Logger logger =
            LoggerFactory.getLogger(HomeController.class);

    @RequestMapping("/")
    public String home(SitePreference sitePreference, Model model) {
        if (sitePreference == SitePreference.NORMAL) {
            logger.info("Site preference is normal");
            return "home";
        } else if (sitePreference == SitePreference.MOBILE) {
            logger.info("Site preference is mobile");
            return "home-mobile";
        } else if (sitePreference == SitePreference.TABLET) {
            logger.info("Site preference is tablet");
            return "home-tablet";
        } else {
            logger.info("no site preference");
            return "home";
        }
    }

}

Resolução de visualização com reconhecimento de dispositivo

Adicione a seguinte configuração baseada em Java para habilitar visualizações com reconhecimento de dispositivo em um aplicativo da web Spring. Isso especifica que Spring Mobile procurará visualizações móveis em /WEB-INF/views/mobile/e visualizações em tablets em /WEB-INF/views/tablet/.

@Bean
public LiteDeviceDelegatingViewResolver liteDeviceAwareViewResolver() {
    InternalResourceViewResolver delegate =
            new InternalResourceViewResolver();
    delegate.setPrefix("/WEB-INF/views/");
    delegate.setSuffix(".jsp");
    LiteDeviceDelegatingViewResolver resolver =
            new LiteDeviceDelegatingViewResolver(delegate);
    resolver.setMobilePrefix("mobile/");
    resolver.setTabletPrefix("tablet/");
    return resolver;
}

Comentários

Postagens mais visitadas