在Grails应用程序中检测移动设备的最简单方法是什么?

时间:2012-01-02 13:10:52

标签: grails mobile

我刚刚开始尝试使用Grails,并且想知道检测移动浏览器的简单方法。

我注意到当我将应用程序部署到tomcat并在移动设备上访问它时,默认的Grails视图是移动视图。能够检测控制器中的移动设备并将用户引导到不同的视图将是有用的。

5 个答案:

答案 0 :(得分:2)

我正在使用这个插件......

http://grails.org/plugin/spring-mobile

......这是Grails邮件列表中的一些讨论......

http://grails.1312388.n4.nabble.com/iPhone-enabling-a-Grails-Web-app-td3206882.html

答案 1 :(得分:1)

我用这个插件来检测浏览器。它工作得非常好,不会弄乱我的代码。

https://plugins.grails.org/plugin/mathifonseca/browser-detection

dependencies {
    compile 'org.grails.plugins:browser-detection:3.3.0'
}

它还可以选择检测它是否是gsp文件中的移动平台。

<browser:isMobile> Mobile phones or Android, iPhone, iPad, iPod, Blackberry, etc. </browser:isMobile>

或在控制器中

class TestController {

    def userAgentIdentService

    def index() {
        if (userAgentIdentService.isMobile()) {
            println 'Hello mobile device!'
            if (userAgentIdentService.isWindowsPhone()) {
                println 'Wow! Does this still exist?'
            }
        } else {
            println 'Hello desktop browser!'
            if (userAgentIdentService.isInternetExplorer()) {
                println 'Redirecting to Chrome download page...'
            }
        }
    }
}
PD:我知道自从这个问题发布以来已经有一段时间了,但它可能对其他人有帮助。

答案 2 :(得分:0)

您可以使用filters机制来检测它是否是移动浏览器。你可以看到available variables in the filters scope的列表。

答案 3 :(得分:0)

request.getHeader('User-Agent') 

...将为您提供类似“Mozilla / 5.0(Macintosh; Intel Mac OS X 10.6; rv:9.0.1)Gecko / 20100101 Firefox / 9.0.1”的内容,您可以从中猜出所使用的浏览器和系统

否则(我还没有测试过),这里有一个浏览器检测插件:http://www.grails.org/plugin/browser-detection

答案 4 :(得分:0)

使用grails spring mobile插件。检查此链接http://jagadeeshmanne.blogspot.in/2014/02/grails-mobile-device-detection-using.html以查找如何使用grails检测设备和呈现设备特定视图。使用afterInterceptor和beforeInterceptor来更改视图和设备检测。