注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [业内传闻]今天,7月25日..
 帮助

Making your Rails app mobile with WAP and WML


2007-06-25 13:30:36
 标签:Rails on Ruby Rails   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blackanger.blog.51cto.com/140924/31652
中国有超过4亿的手机用户,手机上网超过4000万。一个人每天上网平均8小时,但是手机却是24小时开机。。。同时基于web和wap的站点,更有利于推广,公司属于服务行业性质,对于特定手机用户如果需要一些有用而信息量不大的资讯,是比电脑方便的多,论流量收费也花不了多少钱,可以及时的反馈和获取一些信息,期待中国式3G时代到来。。。

下面给出实现的具体步骤:
1。设置WAP WML 文本类型。你可以在每一个controller method里这样做,也可以在application.rb文件中用before_filter来实现:

before_filter :set_wap_content_type, :only => :wap

def set_wap_content_type
  @headers[”Content-Type”] = “text/vnd.wap.wml; charset=iso-8859-1″
end


2。我们创建一个布局app/views/layouts/wap.rhtml,使用wml。
<?xml version=”1.0″?>
<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>
<wml>
<card title=”<%= @title %>”>
<p align=”center”>
<%= @content_for_layout %>
</p>
</card>
</wml>

3。我们在index controller里增加一个wap方法,以便用户可以通过http://www.xxx.com/wap来访问我们wap站点。
def wap
  @title = “San Francisco Sailing Weather”
  render(:layout => “wml”)
end
4。最后我们来创建app/views/index/wap.rhtml来渲染我们的wap首页。
<%= link_to ‘NOAA Marine Forecast’, { :controller => ‘/marine/forecast’, :action => ‘wap’ } %><br/>
<%= link_to ‘Wind Readings’, { :controller => ‘/marine/wind’, :action => ‘wap’ } %><br/>
<%= link_to ‘Current Predictions’, { :controller => ‘/marine/tide’, :action => ‘wap’ } %>

下面的链接是效果图:
http://webcab.de/cgi-bin/wcl.cgi?a=UPG1%20UP%2F4.0&m=text%2Fvnd.wap.wml&URL=http://windandtides.com/wap

wap网站服务器配置信息:
修改Apache安装目录下conf/mime.types文件:

在该文件中增加以下内容:
  text/vnd.wap.wml .wml
  image/vnd.wap.wbmp .wbmp
  application/vnd.wap.wmlc .wmlc
  text/vnd.wap.wmls .wmls
  application/vnd.wap.wmlsc .wmlsc
重启动服务器即可。





    文章评论
 
2007-08-17 16:00:31
转了你这篇文章,我想配合REST可能效果更好~

2007-08-17 16:16:29
多谢转载!
配合REST应该会很好,现在的手机都支持xhtml了,有web浏览器,wml可以抛弃了。。。

2007-08-19 10:35:09
好文章,为什么不转帖到社区下呢?要我帮忙吗?

2007-08-20 11:15:03
老文了,呵呵

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: