高端网站建设,高端网站设计,高端网站制作网络公司-麦优科技
  • 麦优科技签约瑞格装饰
  • 麦优科技签约深圳宏旭达科技
  • 麦优科技签约华因康基因
  • 麦优科技签约启鸣文化
  • 麦优科技签约青禾饲料
  • 麦优科技签约珠海鑫富力服饰
  • 签约A+英语机构新西兰留学项目
  • 签约乐乐英语网站改版

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

更新时间:2012/11/6 20:38:11    |    人气指数:5137    |    返回上页

各种程序的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);



更多
姓 名:  
联系电话:
邮件/ QQ:
内 容: