lizongbo at 618119.com 工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC

2010年08月21日

手机浏览器访问时记住wap1.0和wap2.0切换所需要注意的问题

Filed under: Java — 标签:, , — lizongbo @ 16:33

手机浏览器访问时记住wap1.0和wap2.0切换所需要注意的问题

在无线互联网飞速发展的今天,部分网站已经对页面内容分别提供了wap1.0和wap2.0版本。
为了提升用户体验,因此需要利用Cookie记住用户选择的页面风格,避免用户下次访问时再选择自己喜欢的风格。
通常的做法是在url里通过参数区分风格,并把用户的选择记录到Cookie里。
例如: http://618119.com/?style=wap10 表示wap1.0页面。
http://618119.com/?style=wap20 表示wap2.0页面。

于是每个页面引用的公共java代码如下:
String style=request.getParameter(“style”);
if(“wap10″.equals(style) ||”wap20”.equals(style)){
cookie = new (“style”, style);
cookie.setPath(“/”);
cookie.setMaxAge(60*60*24*365);//一年有效
cookie.setDomain(“.618119.com”);
response.addCookie(cookie);
}
但是这样存在一个问题,
由于部分山寨机不支持wap2.0,而iPhone和Android自带浏览器不支持wap1.0,
因此当用户点击页面风格切换后,如果是选的无法打开的页面风格,就导致Cookie写成功了,而页面内无法展示,且再继续访问时由于Cookie的作用,导致没法默认切回可以打开的页面。
于是改进后的做法是:
使用一个公共的jsp页面,专门负责Cookie的写入,且返回内容为1像素的图片。

每个页面引用的公共代码改为:
String style=request.getParameter(“style”);
if(“wap10″.equals(style) ||”wap20″.equals(style)){
%>
<img src=”http://618119.com/setStyle.jsp?style=<%style%>” alt=””/>
<%
}

这样在页面无法打开的时候,浏览器就不会去请求这个图片地址,因此Cookie就不会写入,用户点浏览器的后退,继续访问原来风格的页面即可。

没有评论 »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress