2013/6/9

WAP方式访问web页面跳转至手机版方法

八桂网讯阅读次数:6600 次打印

各种程序的WAP方式访问web页面跳转至手机版方法,收集了很久,有更好的方法将不断保持更新,您如果有有效的方法也请转告八桂网讯。
方法一:适应于PHP程序
WAP方式访问web页面跳转至手机版方法 check_wap.php文件内容:
<?php
 /**
*判断是否是通过手机访问
*/
function isMobile() {
 // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
 if (isset ($_SERVER[’HTTP_X_WAP_PROFILE’])) {
  return true;
 }
 //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
 if (isset ($_SERVER[’HTTP_VIA’])) {
  //找不到为flase,否则为true
  return stristr($_SERVER[’HTTP_VIA’], "wap") ? true : false;
 }
 //判断手机发送的客户端标志,兼容性有待提高
 if (isset ($_SERVER[’HTTP_USER_AGENT’])) {
  $clientkeywords = array (
   ’nokia’,
   ’sony’,
   ’ericsson’,
   ’mot’,
   ’samsung’,
   ’htc’,
   ’sgh’,
   ’lg’,
   ’sharp’,
   ’sie-’,
   ’philips’,
   ’panasonic’,
   ’alcatel’,
   ’lenovo’,
   ’iphone’,
   ’ipod’,
   ’blackberry’,
   ’meizu’,
   ’android’,
   ’netfront’,
   ’symbian’,
   ’ucweb’,
   ’windowsce’,
   ’palm’,
   ’operamini’,
   ’operamobi’,
   ’openwave’,
   ’nexusone’,
   ’cldc’,
   ’midp’,
   ’wap’,
   ’mobile’
  );
  // 从HTTP_USER_AGENT中查找手机浏览器的关键字
  if (preg_match("/(" . implode(’|’, $clientkeywords) . ")/i", strtolower($_SERVER[’HTTP_USER_AGENT’]))) {
   return true;
  }
 }
 //协议法,因为有可能不准确,放到最后判断
 if (isset ($_SERVER[’HTTP_ACCEPT’])) {
  // 如果只支持wml并且不支持html那一定是移动设备
  // 如果支持wml和html但是wml在html之前则是移动设备
  if ((strpos($_SERVER[’HTTP_ACCEPT’], ’vnd.wap.wml’) !== false) && (strpos($_SERVER[’HTTP_ACCEPT’], ’text/html’) === false || (strpos($_SERVER[’HTTP_ACCEPT’], ’vnd.wap.wml’) < strpos($_SERVER[’HTTP_ACCEPT’], ’text/html’)))) {
   return true;
  }
 }
 return false;
}
 
//跳转js
$js =
<<<EOT
var pgo=0;
function JumpUrl(){ if(pgo==0){ location=’http://www.cmsjoy.com’; pgo=1;  } }
setTimeout(’JumpUrl()’,3000);
EOT;
 
//如果检测为wap访问,则跳转
if(isMobile())
{
echo $js;
}else{
echo "0";
}
 
?>
 
 
在html页面引入
<script type="text/javascript"  src="check_wap.php" ></script><!--wap跳转JS-->
 
 
方法二:适应于asp程序开发的语言。
 
程序代码

<%
if InStr(LCase(Request.ServerVariables("HTTP_ACCEPT")),"text/vnd.wap.wml")>0 then
response.redirect  "wap.asp" ’如果是手机访问则跳转到wap.asp
response.end
else
response.redirect  "default.asp" ’如果电脑访问跳转到首页
response.end
end if
%>


 
方法三:JS判断并跳转。
 
<script type="text/JavaScript">
var mobileAgents = [’Windows CE’,’iPod’,’Symbian’,’iPhone’,’BlackBerry’,’Android’,’htc’,’ucweb’,’wap’,’mobile’,’UCWEB’,’HTC’,’WAP2.0’];
var sUserAgent = navigator.userAgent;
for(var i = 0;i<mobileAgents.length;i++)
{
    if(sUserAgent.indexOf(mobileAgents)>-1)
    {
        location = ’http://www.beike.cc/m/index.html’;
        break;
    }
}
</script>
 
方法四:ASP.NET跳转方法
 
最终采用了通过获得http头信息的方法来判断,此方法可靠性最高.详细代码如下:
asp.net [code]
if (Request.Headers["user-agent"] != null && Request.Headers["user-agent"].ToLower().ToString().IndexOf("mozilla") != -1)
            Response.Redirect("www/index.aspx");
        else
            Response.Redirect("wap/index.aspx");
 
另外一种写法:
asp.net(C#) 中用以下代码
using System.Text.RegularExpressions;//头部引入正则的命名空间
 
//为了加强准确性,防止支持wap的浏览器如opera,加入操作系统验证。openwave|后为pc操作系统
string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|Longhorn|ubuntu|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";
string uAgent = Request.ServerVariables["HTTP_USER_AGENT"];
Regex reg = new Regex(osPat);
if (reg.IsMatch(uAgent))
{
Response.Write("电脑访问");
}
else
{
Response.Write("手机访问");
}
Response.Write("<br/>" + uAgent);

  • 产品价值观 Product values
    随需而变的个性化需求产品开发理念;高用户体验、高技术含量的产品实现;稳定持续的售后服务以保持BECMS系统给客户带来持续的使用价值。
  • 高端形象定位 High-end image positioning
    具有顶级发展潜力的企业合作,激发顶级的设计创作灵感,应用顶级的开发技术,追求卓越的产品开发管理、整体品牌营销、管理信息化的一站式整合应用,实现客户渴求的高端企业形象定位。
八桂网讯网络技术有限公司  企业品牌网站建设事业部  版权所有.
全国免费服务热线:400-618-9767   网站制作咨询QQ:2196677
7*24小时服务热线:13712886528   邮 箱:baguidadi@qq.com
CopyRight ©2004- www.baguidadi.com All Rights Reserved. 粤ICP备11025868号
总部地址:广东省东莞市莞城区旗锋路186号方中电脑城B座705/707(邮编:523000)
南宁服务部:广西南宁市东葛路迷您居3栋105   联系电话:13667712423   咨询QQ:544425595
大理服务部:云南省大理市下关青春海岸8-25   联系电话:0872-3158178   咨询QQ:1047092007