Rexsee客户端内嵌的浏览器和普通浏览器具有不同的UserAgent字符串,实际上,不同的手机中其默认浏览器的UserAgent字符串几乎全都不同,Rexsee客户端在默认的UserAgent字符串后追加了一串字符,以下是运行在摩托罗拉XT800+的Rexsee客户端的UserAgent字符串:
Mozilla/5.0 (Linux; U; Android 2.2; zh-cn; XT800+ Build/TTUPG_M6_1.200.18) AppleWebKit/533.1 (KHTML, like Gecho) Version/4.0 Mobile Safari/533.1 rexsee:mapabc/zh-CN/480x854x1.5/89860000000000000000/460030000000000/A000002280000E/rexseeEnterpriseDeveloper.rexsee
如果你正在使用手机版的Rexsee帮助,请按顶部的“关于”标签查看您的手机的UserAgent字符串。
在上述的UserAgent字符串中的 "rexsee:"之后,是Rexsee客户端追加的字符串,其中包含了以下几个部分:
- 第一部分(这里是“mapabc”)是Rexsee客户端的版本。
- 第二部分(这里是“zh-CN”)是Rexsee客户端使用的语言,取决于手机设置中“语言和地区”的设置。
- 第三部分(这里是“480x854x1.5”)是屏幕宽度、屏幕高度和屏幕像素密度的调正参数。
- 第四部分(这里是“89860000000000000000/460030000000000/A000002280000E”)是ICCID、IMSI和IMEI。
- 第五部分(这里是“entepriseDeveloper.rexsee”)是该 Rexsee客户端的软件包名称,这是Android系统用来识别一个应用程序的标识。.
所以,你可以使用UserAgent字符串判断当前访问你的服务器脚本的客户端是否Rexsee客户端,并据此作出决定,输出为PC设计的正常网页还是输出为Rexsee客户端设计的网页。以下是几个实例:
在PHP文件中使用不同的模板( xxxxxx.php ):
<?php
$isRexsee = ( substr_count($_SERVER['HTTP_USER_AGENT'],"rexsee") >=1 ) ? true :false;
$template = ($isRexsee) ? "template/rexsee.template.html": "template/pc.template.html";
......
......
......
?>
使用同一个模板文件,但引用不同的CSS文件和JS文件 ( xxxxxx.template.html and xxxxxx.php ):
<!--xxxxxx.template.html:-->
<HTML>
<HEAD>
<TITLE>Rexsee Enterprise Mobility Suit</TITLE>
<META http-equiv=Content-Type content=text/html charset=GB2312>
<LINK href="{$css}" type=text/css rel=stylesheet>
<SCRIPT type=text/javascript src="{$js}"></SCRIPT>
<HEAD>
<BODY>
.......
.......
</BODY>
</HTML>
<?php
//xxxxxx.php
$isRexsee = ( substr_count($_SERVER['HTTP_USER_AGENT'],"rexsee") >=1 ) ? true :false;
$css = ($isRexsee) ? "css/rexsee.css" : "css/pc.css";
$js = ($isRexsee) ? "js/rexsee.js" : "js/pc.js";
......
......
......
?>
在HTML文件中引用不同的CSS文件和JS文件 ( xxxxxx.html.php ):
<?php
$isRexsee = ( substr_count($_SERVER['HTTP_USER_AGENT'],"rexsee") >=1 ) ? true :false;
?>
<HTML>
<HEAD>
<TITLE>Rexsee Enterprise Mobility Suit</TITLE>
<META http-equiv=Content-Type content=text/html charset=GB2312>
<LINK href="<?php echo ($isRexsee) ? "css/rexsee.css": "css/pc.css";?>" type=text/css rel=stylesheet>
<SCRIPT type=text/javascript src="<?php echo ($isRexsee) ? "js/rexsee.js": "js/pc.js";?>"></SCRIPT>
<HEAD>
<BODY>
.......
.......
</BODY>
</HTML>
在动态CSS文件中输出不同的CSS代码( xxxxxx.css.php ):
<?php
$rexsee=<<<str
body { background-color: black; color: white; ...... }
......
......
str;
$pc=<<<str
body { background-color: white; color:black ; ...... }
......
......
str;
$isRexsee = ( substr_count($_SERVER['HTTP_USER_AGENT'],"rexsee") >=1 ) ? true :false;
echo ( $isRexsee ) ? $rexsee : $pc;
?>
在动态JS文件中输出不同的JS代码 ( xxxxxx.js.php ):
<?php
$rexsee=<<<str
initOptionsMenu();
function initOptionsMenu(){
......
}
......
......
str;
str;
$isRexsee = ( substr_count($_SERVER['HTTP_USER_AGENT'],"rexsee") >=1 ) ? true :false;
echo ( $isRexsee ) ? $rexsee : $pc;
?>