关于实现判断用户是在PC端和仍是移动端访问。

最近一直在忙咱们团队的项目“咖啡之翼”,在这个项目中,咱们为移动平台提供了一个优秀的体验。伴随Android平台的红火发展。不只带动国内智能手机行业,并且许多国内开发者也开始投身于Android移动终端的大浪潮中。若是不少互联网大浪潮你错过了。那么这个Android浪潮你绝对不能错过。目前咱们为“咖啡之翼”已经开发了移动终端以及安卓客户端,你们使用Android或者IOS操做系统的手机,直接访问域名www.sygxy.cn便可观看移动终端效果。同时Android客户端已经上架到腾讯“应用宝”和“百度手机助手”等应用商城。你们能够直接搜索“咖啡之翼”进行下载。在没有任何的推广的状况了,仅仅上架一周,已经拥有超过100+的下载量。javascript

若是须要对移动终端进行优化,必需要作的就是,判断客户机的访问设备是什么。经过判断的结果,返回不能的域名地址,继而加载不一样的CSS文件。java

咱们使用的判断方式是经过user-agent值,来进行判断。使用javascript框架中的Navigator对象的userAgent属性。navigator 对象没有公开标准,不过如今市面上全部浏览器都支持该对象。使用userAgent属性返回由客户机发送服务器的 user-agent 头部的值。头信息中有一个 User-Agent,它的做用是告诉服务器,用户客户端是什么浏览器,以及操做系统的信息的。使用正则表达式进行user-agent值的获取。和本地的值进行判断,这个匹配值能够是移动操做系统例如Android,ios,也能够为浏览器的名称。有匹配项则跳转,不然则不会跳转,直接进入PC端首页。ios

具体的代码实现,咱们为了提升网站的可移植性,使用了JavaScript脚本语言。使用此技术的好处在笔者看来有两点正则表达式

1:能够提升网站的可移植性,若是在此后的Web项目中,咱们团队须要再一次加入移动终端的效果,就能够很轻松的引入这部分的JS代码,进行判断。提升之后的工做效率。浏览器

2:第二点是便于Web程序能够在不用的界面加载,是否引入这部分移动终端的判断代码。服务器

具体实现:app

咱们把判断访问的脚本抽离,若是哪一个页面须要进行客户终端的判断,咱们就直接在页面使用<script></script>引入脚本程序,具体判断代码以下:框架

function uaredirect(f){
	try{if(
	document.getElementById("bdmark")!=null){
	return
	}
	var b=false;
	if(arguments[1]){
	var e=window.location.host;var a=window.location.href;
		if(isSubdomain(arguments[1],e)==1){
			f=f+"/#m/"+a;b=true}else{if(isSubdomain(arguments[1],e)==2){f=f+"/#m/"+a;b=true}
		else{f=a;b=false}}}
	else{b=true}if(b){var c=window.location.hash;
	if(!c.match("fromapp")){
	if((navigator.userAgent.match(/(iPhone|iPod|Android|ios|Windows Phone)/i))){location.replace(f)}}}}catch(d)   {   }}
相关文章
相关标签/搜索