使用Spring Boot来检测移动设备 [英] Detecting a mobile device with spring-boot

查看:263
本文介绍了使用Spring Boot来检测移动设备的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试让我的应用程序检测移动设备并呈现该页面,但是没有任何响应,但我的index.html页面正在呈现.它完全忽略了我的移动控制器.

I am trying to get my application to detect a mobile device and render that page but I am getting no response but my index.html page is rendering. It is completely ignoring my mobile controller.

@Controller
public class DeviceDetection {

    @RequestMapping("/")
    public @ResponseBody String detectDevice(Device device) {

        if (device.isNormal()) {
            System.out.println("Inside isNormal()");
            return "index";

        } else if (device.isMobile()) {
            System.out.println("Inside isMobile()");
            return "mobilePage";
        } else if (device.isTablet()) {
            return "mobilePage";
        }
        return "index";
    }

}

pom.xml

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mobile</artifactId>
        </dependency>

推荐答案

spring-boot-mobile需要设置其他属性才能检测您的Device.

spring-boot-mobile requires additional property to be set in order to detect your Device.

该属性为spring.mobile.devicedelegatingviewresolver.enabled: true

以下是默认目录结构:

        resources
        └── templates
            └── greeting.html
            └── mobile
                └── greeting.html
            └── tablet
                └── greeting.html

根据您的情况,您需要正确映射模板.

In your case you need to map your templates correctly.

Spring Boot spring-mobile属性以自定义行为:

Spring Boot spring-mobile properties to customize behavior:

spring.mobile.devicedelegatingviewresolver.enable-fallback=false -启用对后备分辨率的支持.

spring.mobile.devicedelegatingviewresolver.enable-fallback=false - Enable support for fallback resolution.

spring.mobile.devicedelegatingviewresolver.enabled=false -启用设备视图解析器

spring.mobile.devicedelegatingviewresolver.enabled=false - Enable device view resolver

spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/-用于查看移动设备名称的前缀.

spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/- Prefix that gets prepended to view names for mobile devices.

spring.mobile.devicedelegatingviewresolver.mobile-suffix= -后缀添加到移动设备的视图名称.

spring.mobile.devicedelegatingviewresolver.mobile-suffix=- Suffix that gets appended to view names for mobile devices.

spring.mobile.devicedelegatingviewresolver.normal-prefix= -用于查看普通设备名称的前缀.

spring.mobile.devicedelegatingviewresolver.normal-prefix= - Prefix that gets prepended to view names for normal devices.

spring.mobile.devicedelegatingviewresolver.normal-suffix= -后缀添加到普通设备的视图名称上.

spring.mobile.devicedelegatingviewresolver.normal-suffix=- Suffix that gets appended to view names for normal devices.

spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ -用于查看平板电脑设备名称的前缀.

spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/- Prefix that gets prepended to view names for tablet devices.

spring.mobile.devicedelegatingviewresolver.tablet-suffix= -后缀添加到平板电脑设备的视图名称.

spring.mobile.devicedelegatingviewresolver.tablet-suffix=- Suffix that gets appended to view names for tablet devices.

spring.mobile.sitepreference.enabled=true -启用SitePreferenceHandler.

spring.mobile.sitepreference.enabled=true- Enable SitePreferenceHandler.

我还要将@RequestMapping("/")更改为其他内容.

Also I would change @RequestMapping("/") to something else.

这篇关于使用Spring Boot来检测移动设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆