|
|
|
|
|
用手機(jī)打開PC網(wǎng)頁(yè),會(huì)有諸多的不便,由于手機(jī)屏幕太小,所以網(wǎng)頁(yè)縮小后字體也相應(yīng)縮小,要放大才可以看清,但放大后網(wǎng)頁(yè)又超出了手機(jī)的屏幕寬度,需要手動(dòng)來左右拖動(dòng)網(wǎng)頁(yè),操作起來相當(dāng)麻煩。為了顧及手機(jī)用戶的體驗(yàn),網(wǎng)頁(yè)手機(jī)版順應(yīng)而出,目前已有一些工具可以自動(dòng)把網(wǎng)站生成手機(jī)網(wǎng)頁(yè)了。
手機(jī)打開PC網(wǎng)頁(yè)
最近把網(wǎng)站內(nèi)容做了一個(gè)手機(jī)版,主要是調(diào)整好界面布局,不多余的東西去掉,以適合手機(jī)用戶使用?,F(xiàn)在有一個(gè)比較頭疼的問題是,用戶多數(shù)是記住PC端使用的主域名,而不去記手機(jī)端使用的二級(jí)域名,有什么辦法改善這一狀況呢。
我看到很多網(wǎng)站都是在PC網(wǎng)頁(yè)的某個(gè)地方加上一個(gè)按鈕,提示用戶可以切換都手機(jī)訪問,點(diǎn)擊那個(gè)按鈕即可。這不失為一個(gè)方法,但是我感覺這并不是一個(gè)好的方法,因?yàn)楫?dāng)用戶打開PC網(wǎng)頁(yè)時(shí),內(nèi)容堆得滿滿的,廣告多的話會(huì)有點(diǎn)眼花繚亂,可能沒有發(fā)現(xiàn)有個(gè)“手機(jī)版”的連接圖標(biāo),這樣的用戶體驗(yàn)是比較差的。我現(xiàn)在想實(shí)現(xiàn)自動(dòng)化,即是當(dāng)用戶用手機(jī)打開PC網(wǎng)頁(yè)時(shí),能自動(dòng)跳到手機(jī)網(wǎng)頁(yè),有什么方法可以實(shí)現(xiàn)呢?
我后來想到的切入點(diǎn)是從瀏覽器來突破,每一個(gè)瀏覽器的userAgent是不同的,而主流的PC瀏覽器和手機(jī)瀏覽器都是十分有限的,可以通過網(wǎng)頁(yè)程序來獲得客戶端瀏覽器的userAgent,進(jìn)而判斷客戶端是PC還是手機(jī),從而跳轉(zhuǎn)到對(duì)應(yīng)的網(wǎng)頁(yè)。
js實(shí)現(xiàn)手機(jī)打開PC網(wǎng)頁(yè)自動(dòng)跳到手機(jī)網(wǎng)頁(yè)
通過測(cè)試,前端js程序是可以實(shí)現(xiàn)這一功能的。如下面是主要判斷代碼:
<script language="JavaScript">
var ua = window.navigator.userAgent; //獲得瀏覽器類型
//alert(ua);
if(ua.indexOf("MSIE")>=1)
{
alert("這是 IE");
//客戶端是PC,應(yīng)使用PC網(wǎng)頁(yè)
}
else if(ua.indexOf("Firefox")>=1)
{
alert("這是 Firefox");
//客戶端是PC,應(yīng)使用PC網(wǎng)頁(yè)
}
else if(ua.indexOf("Chrome")>=1)
{
alert("這是 Chrome");
//客戶端是PC,應(yīng)使用PC網(wǎng)頁(yè)
}
...... //這里列舉所有主流的PC瀏覽器類型
else
{
//客戶端是手機(jī),自動(dòng)跳轉(zhuǎn)到手機(jī)網(wǎng)頁(yè)
}
</script>
通過上面的js程序,便可實(shí)現(xiàn)手機(jī)打開PC網(wǎng)頁(yè)自動(dòng)跳到手機(jī)網(wǎng)頁(yè)的功能。
PHP和ASP.NET判斷客戶端是否手機(jī)
根據(jù)上述的思路,如果是動(dòng)態(tài)網(wǎng)頁(yè),也可以用PHP等動(dòng)態(tài)語言實(shí)現(xiàn)。不管什么語言,都是判斷客戶端瀏覽器userAgent。
下面是PHP獲取userAgent并判斷客戶端是否手機(jī)的代碼:
<?php
//php判斷客戶端是否為手機(jī)
$agent = $_SERVER['HTTP_USER_AGENT'];
if(strpos($agent,"NetFront") || strpos($agent,"iPhone") || strpos($agent,"MIDP-2.0") || strpos($agent,"Opera Mini") || strpos($agent,"UCWEB") || strpos($agent,"Android") || strpos($agent,"Windows CE") || strpos($agent,"SymbianOS"))
header("Location:xxxxxxxx");
?>
asp.net獲取userAgent的代碼:
下面為獲取瀏覽器UA的ASP.NET代碼:
<%
string ua1 = Request.ServerVariables["HTTP_USER_AGENT"];
Response.Write(ua1);
%>
或者
<%
string ua2 = Request.UserAgent;
Response.Write(ua2);
%>
或者
<%
string ua3 = Request.Headers["User-Agent"];
Response.Write(ua3);
%>
以上有三種獲取瀏覽器UA的ASP.NET的方法,使用任何一種即可。