佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類(lèi)型并跳轉(zhuǎn)到app下載頁(yè)面

JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類(lèi)型并跳轉(zhuǎn)到app下載頁(yè)面

熱門(mén)標(biāo)簽:阿里云 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù) Mysql連接數(shù)設(shè)置 Linux服務(wù)器 服務(wù)器配置 電子圍欄

判斷客戶端手機(jī)類(lèi)型,并跳轉(zhuǎn)到相應(yīng)的app下載頁(yè)面

實(shí)現(xiàn)的原理,是檢測(cè)瀏覽器的 USER-AGENT 這個(gè)header,然后根據(jù)正則表達(dá)式來(lái)確定客戶端類(lèi)型。

如果都不匹配,F(xiàn)allback回退策略是顯示對(duì)應(yīng)的頁(yè)面,讓用戶自己選擇。
適合采用二維碼掃描方式下載APP:

JSP版本的代碼如下所示:其他服務(wù)端版本請(qǐng)百度搜索。

%@page import="java.util.regex.Matcher"%>
%@page import="java.util.regex.Pattern"%>
%@ page language="java" pageEncoding="UTF-8"%>
%!
// \b 是單詞邊界(連著的兩個(gè)(字母字符 與 非字母字符) 之間的邏輯上的間隔),字符串在編譯時(shí)會(huì)被轉(zhuǎn)碼一次,所以是 "\\b"
// \B 是單詞內(nèi)部邏輯間隔(連著的兩個(gè)字母字符之間的邏輯上的間隔)

String androidReg = "\\bandroid|Nexus\\b";
String iosReg = "ip(hone|od|ad)";

Pattern androidPat = Pattern.compile(androidReg, Pattern.CASE_INSENSITIVE);
Pattern iosPat = Pattern.compile(iosReg, Pattern.CASE_INSENSITIVE);

public boolean likeAndroid(String userAgent){
	if(null == userAgent){
		userAgent = "";
	}
	// 匹配
	Matcher matcherAndroid = androidPat.matcher(userAgent);
	if(matcherAndroid.find()){
		return true;
	} else {
		return false;
	}
}
public boolean likeIOS(String userAgent){
	if(null == userAgent){
		userAgent = "";
	}
	// 匹配
	Matcher matcherIOS = iosPat.matcher(userAgent);
	if(matcherIOS.find()){
		return true;
	} else {
		return false;
	}
}

%>
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

//
String userAgent = request.getHeader( "USER-AGENT" ).toLowerCase();
System.out.println("userAgent: "+userAgent);
if(null == userAgent){
	userAgent = "";
}
if(likeAndroid(userAgent)){
System.out.println("likeAndroid: "+true);
	response.sendRedirect("http://m.jb51.net/download.jsp?platform=android");
	return;
	//request.getRequestDispatcher("/download.html").forward(request,response);
} else if(likeIOS(userAgent)){
System.out.println("likeIOS: "+true);
	response.sendRedirect("http://itunes.apple.com/us/app/id714751061");
	return;
	//request.getRequestDispatcher("/index.html").forward(request,response);
}
%>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
title>下載客戶端 - 永恒記憶/title>
link href="css/style.css" rel="stylesheet" type="text/css" />
/head>

body>
div class="p_down">
	div>
		a href="index.html">
		img src="images/p_logo.png" class="p_logo" />
		/a>
	/div> 
		
		a href="itms-services://?action=download-manifesturl=http://m.jb51.net/upload/client/yhjyios.plist" class="apple download">img src="images/p_down_apple.png" />/a>
		a  class="download">img src="images/p_down_and.png" />/a>
		
/div>
/body>
/html>

您可能感興趣的文章:
  • js根據(jù)手機(jī)客戶端瀏覽器類(lèi)型,判斷跳轉(zhuǎn)官網(wǎng)/手機(jī)網(wǎng)站多個(gè)實(shí)例代碼
  • Javascript 判斷客戶端瀏覽器類(lèi)型代碼
  • Javascript中獲取瀏覽器類(lèi)型和操作系統(tǒng)版本等客戶端信息常用代碼
  • js獲取客戶端操作系統(tǒng)類(lèi)型的方法【測(cè)試可用】
  • JavaScript學(xué)習(xí)筆記之檢測(cè)客戶端類(lèi)型是(引擎、瀏覽器、平臺(tái)、操作系統(tǒng)、移動(dòng)設(shè)備)
  • Javascript實(shí)現(xiàn)檢測(cè)客戶端類(lèi)型代碼封包
  • 利用JS判斷客戶端類(lèi)型你應(yīng)該知道的四種方法

標(biāo)簽:大理 江蘇 萍鄉(xiāng) 棗莊 衡水 廣元 蚌埠 衢州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類(lèi)型并跳轉(zhuǎn)到app下載頁(yè)面》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    徐汇区| 南岸区| 晋城| 涟水县| 天台县| 北京市| 玉门市| 徐闻县| 抚顺市| 基隆市| 丰城市| 库尔勒市| 洪湖市| 墨竹工卡县| 临武县| 专栏| 抚远县| 郴州市| 噶尔县| 昌吉市| 碌曲县| 望江县| 老河口市| 泸水县| 井陉县| 正镶白旗| 海晏县| 大方县| 泰宁县| 连云港市| 广德县| 宣化县| 虎林市| 三河市| 平舆县| 平泉县| 平乐县| 康保县| 缙云县| 梧州市| 富裕县|