精通 Grails:Grails 与移动 Web

116 篇文章 0 订阅
全球的手机用户为 33 亿,并且呈上升趋势,而通过手机上网也越来越走俏。因此有开发移动 Web 的特殊需求。在本期的 精通 Grails 中,Scott Davis 向您讲述了如何让 Grails 应用程序便于手机浏览。

目前,几乎所有的网站都宣称 “ 使用 [Browser X] 提供最佳视图”。现代的 Ajax 库,比如 Prototype、Dojo 和 YUI,有效地缩小了 Firefox、Internet Explorer 和 Safari 之间的差距。但是使用 Nokia、Motorola 或者 Apple 手机的人可能不会喜欢浏览器的独立性。即使是最新的呼吁 “支持完整 HTML ” 的移动浏览器也可以从简单更改网络内容中获益。本文将向您展示如何优化 Grails 应用程序,使其适用于移动浏览器。

移动 Web 的使用率正在增长

据 Internet World Stats 称,目前 Internet 用户为 14 亿 — 约为全球总人口的 20%(请参阅 参考资料)。在北美洲,有 3/4 的人都是使用移动互联网。

在全球 66 亿人口当中,就有一半的人拥有手机。在北美洲,手机与 Internet 的市场占有率几乎相等,但在其他的地方则有所不同。在香港,手机的市场占有率为 140%,而在欧盟的部分国家(立陶宛,意大利和卢森堡公国)其市场占有率已高达 150%。的确,在某些地方手机比人还要多。

IDG Communications 的 Colin Crawfordsays 说到了要点(参见 参考资料):“在接下来的几年里,手机会作为上网的主要设备而逐步取代个人电脑。现在,通过手机访问互联网的比例已达到 30%,而在某些国家(比如日本)这个比例已高达 70%”。

如果您还在疑虑为什么非要使网站便于移动浏览的话,看一看 移动 Web 的使用率正在增长 边栏里面的数字就会明白了。这份全球的统计数字确实让人过目难忘,但热衷移动 Web 源于我个人的兴趣。我在 2007 年春天买了一个 iPhone,那时它刚刚上市。从那以后,我就一直在寻找可以用它来浏览的网站。当然,我可以用它访问任何的网站(只要不是基于 Flash 或者 Java™ applet 的网站,因为它不支持)。问题是,适合在分辨率为 800x600 (或更高)的显示器上显示的内容,在 3.5 英寸的屏幕上显示效果就没有那么好了。

我经常访问的那些带有 UI 的网站,因为它们符合我的手机的特定限制。我的手机会用 m 代替普通站点中传统的 URL www,这就是一个很好的起点。http://m.cnn.com、http://m.yahoo.com 和 http://m.google.com 这样的页面就能在我的手机上显示。有些网站,比如 http://www.twitter.com,则会做出相应的调整,以输出合适的内容:在电脑上浏览,我可以获得全部功能;而在手机上浏览时,则删剪了一些内容,使它刚好适合我的屏幕。我将向您展示如何实现不改变 URL,但提供最佳 UI。

针对移动 Web 开发人员的技术

作为一个 Java 开发人员,我已经被 “只写一次,到处运行(Write Once,Run Anywhere)” 的承诺给宠坏了。我甚至从来没有考虑过优化 Java 应用程序使其适合某一特定的操作系统或硬件型号。但是如果是要开发移动 Web 的话,就应该熟悉三种支持不同型号移动设备的主要技术:

  • 无线标记语言(Wireless Markup Language 1.x,WML 1.x)
  • WML 2.x 或 Mobile Profile(XHTML-MP)
  • 针对 iPhone 的 HTML 标记

正如我展示的一样,您可以将 WML 和 XHTML-MP 标记与用 Grails 构建的 Groovy Server Pages(GSPs)结合起来,以生成便于移动的页面。此外,我还会向您展示如何修改 Grails 生成的 HTML,使页面在 iPhone 上显示得更好。





回页首


结合使用 WML 1.x 和 Grails

WML 是一种类似于 HTML 的标记语言,但它并不是真正的 HTML(WML 1.0 于 1998 年标准化。WML 1.3 为最新版本)。WML 并无法在 Web 浏览器中查看(至少不借助于仿真器是不行的),同样您也无法在 WML 浏览器中查看 HTML。手机供应商通常都会提供在后台实现 HTML 与 WML 之间相互转换的网关。

关于本系列

Grails 是一种新型 Web 开发框架,它将常见的 Spring 和 Hibernate 等 Java 技术与当前流行的实践(比如约定优于配置)相结合。在加入脚本语言的灵活性和动态性的同时,用 Groovy 编写的 Grails 可以无缝地集成遗留的 Java 代码。学习完 Grails 之后,您将改变看待 Web 开发的方式。

WML 通过无线访问协议(Wireless Access Protocol,WAP)传输,这和 HTML 通过 HTTP 传输很相似。WAPWML 在临时对话中通常可以相互转换:手机说明书总是会夸耀该手机带有 WAP 浏览器,或者支持 WML 1.x(参阅 参考资料 获得 WML 和 WAP 规范的官方链接)。

如果您针对的是 Research in Motion 的 BlackBerry 用户的话,就得提高关于 WML 的知识了。(BlackBerry 大约占了智能手机市场的 40%,iPhones 和 Windows® Mobile 居于第二和第三位)。虽然很多技术过硬的用户也可以下载真正的 Web 浏览器,比如 Opera Mini(参见 参考资料),但是 BlackBerry 智能手机还是配备了 WAP 浏览器。

继续设计旅行计划

如果您一直都在关注 精通 Grails 系列文章的话,那么您可以修改已经熟悉的旅行计划应用程序,使它便于在手机上浏览。在旅行计划应用程序的 web-app 目录中创建一个文件,命名为 testwml.gsp,并输入清单 1 中的静态 WML:


清单 1. 静态 WML




本文转自IBM Developerworks中国

      请点击此处查看全文


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值