怎么判断html 是在移动端应用(app),还是移动端浏览器中打开的

html-css08

怎么判断html 是在移动端应用(app),还是移动端浏览器中打开的,第1张

判断html 是在移动端应用(app),还是移动端浏览器中打开可以通过查看 UA来实现。

UA是SIP协议中的一个逻辑实体,SIP是一个信令协议,代理的含义为代替用户处理信令协议,简单说就是替用户收发信令信息。

UA简单是指用户的手机信息。通过UA,可以知道用户的手机类型,是小米的,还是索爱的。

Header 里面有 UA,可以根据  UA 来判断。

约定App中的网页的UA都加入了某一标识,例如,从微信中打开的网页的UA都会含有Wechat/1.0.1之类的信息。

app 中打开可以在 Header 里面加入一些字段,这样就可以在页面中判断,有这些字段就是在 app 里面打开的,没有就不是。

如果是app扫描打开,扫描传入的是网址,最后打开的还是在浏览器打开,跟app是没有关联的,所以还是通过浏览器打开的。

js方法

判断浏览器名称和版本

目前只能判断:ie/firefox/chrome/opera/safari

2012年5月16日23:47:08

浏览器内核UA:UA

浏览器内核名称:NV.name

浏览器内核版本:NV.version

浏览器外壳名称:NV.shell

var NV = {}

var UA = navigator.userAgent.toLowerCase()

try

{

NV.name=!-[1,]?'ie':

(UA.indexOf("firefox")>0)?'firefox':

(UA.indexOf("chrome")>0)?'chrome':

window.opera?'opera':

window.openDatabase?'safari':

'unkonw'

}catch(e){}

try

{

NV.version=(NV.name=='ie')?UA.match(/msie ([\d.]+)/)[1]:

(NV.name=='firefox')?UA.match(/firefox\/([\d.]+)/)[1]:

(NV.name=='chrome')?UA.match(/chrome\/([\d.]+)/)[1]:

(NV.name=='opera')?UA.match(/opera.([\d.]+)/)[1]:

(NV.name=='safari')?UA.match(/version\/([\d.]+)/)[1]:

'0'

}catch(e){}

try

{

NV.shell=(UA.indexOf('360ee')>-1)?'360极速浏览器':

(UA.indexOf('360se')>-1)?'360安全浏览器':

(UA.indexOf('se')>-1)?'搜狗浏览器':

(UA.indexOf('aoyou')>-1)?'遨游浏览器':

(UA.indexOf('theworld')>-1)?'世界之窗浏览器':

(UA.indexOf('worldchrome')>-1)?'世界之窗极速浏览器':

(UA.indexOf('greenbrowser')>-1)?'绿色浏览器':

(UA.indexOf('qqbrowser')>-1)?'QQ浏览器':

(UA.indexOf('baidu')>-1)?'百度浏览器':

'未知或无壳'

}catch(e){}

alert('浏览器UA='+UA+

'\n\n浏览器名称='+NV.name+

'\n\n浏览器版本='+parseInt(NV.version)+

'\n\n浏览器外壳='+NV.shell)

})

2.jQuery插件

(function($)

{

/*

判断浏览器名称和版本

目前只能判断:ie/firefox/chrome/opera/safari

2012年5月16日23:47:08

浏览器内核UA:$.NV('ua')或$.NV('UA')

浏览器内核名称:$.NV('name')或$.NV()

浏览器内核版本:$.NV('version')

浏览器外壳名称:$.NV('shell')

*/

$.extend(

{

NV:function(name)

{

var NV = {}

var UA = navigator.userAgent.toLowerCase()

try

{

NV.name=!-[1,]?'ie':

(UA.indexOf("firefox")>0)?'firefox':

(UA.indexOf("chrome")>0)?'chrome':

window.opera?'opera':

window.openDatabase?'safari':

'unkonw'

}catch(e){}

try

{

NV.version=(NV.name=='ie')?UA.match(/msie ([\d.]+)/)[1]:

(NV.name=='firefox')?UA.match(/firefox\/([\d.]+)/)[1]:

(NV.name=='chrome')?UA.match(/chrome\/([\d.]+)/)[1]:

(NV.name=='opera')?UA.match(/opera.([\d.]+)/)[1]:

(NV.name=='safari')?UA.match(/version\/([\d.]+)/)[1]:

'0'

}catch(e){}

try

{

NV.shell=(UA.indexOf('360ee')>-1)?'360极速浏览器':

(UA.indexOf('360se')>-1)?'360安全浏览器':

(UA.indexOf('se')>-1)?'搜狗浏览器':

(UA.indexOf('aoyou')>-1)?'遨游浏览器':

(UA.indexOf('theworld')>-1)?'世界之窗浏览器':

(UA.indexOf('worldchrome')>-1)?'世界之窗极速浏览器':

(UA.indexOf('greenbrowser')>-1)?'绿色浏览器':

(UA.indexOf('qqbrowser')>-1)?'QQ浏览器':

(UA.indexOf('baidu')>-1)?'百度浏览器':

'未知或无壳'

}catch(e){}

switch(name)

{

case 'ua':

case 'UA':br=UAbreak

case 'name':br=NV.namebreak

case 'version':br=NV.versionbreak

case 'shell':br=NV.shellbreak

default:br=NV.name

}

return br

}

})

})(jQuery)

$(function()

{

alert('浏览器UA='+$.NV('UA')+

'\n\n浏览器名称='+$.NV('name')+

'\n\n浏览器版本='+parseInt($.NV('version'))+

'\n\n浏览器外壳='+$.NV('shell'))

})

用JS来判断:

<script>

function myBrowser() {

var userAgent = navigator.userAgent //取得浏览器的userAgent字符串

var isChrome = userAgent.indexOf("Chrome") > -1 //判断是否Chrome浏览器

var isOpera = userAgent.indexOf("Opera") > -1 //判断是否Opera浏览器

var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera //判断是否IE浏览器

var isFF = userAgent.indexOf("Firefox") > -1 //判断是否Firefox浏览器

var isSafari = userAgent.indexOf("Safari") > -1 //判断是否Safari浏览器

if (isIE) {

var IE5 = IE55 = IE6 = IE7 = IE8 = false

var reIE = new RegExp("MSIE (\\d+\\.\\d+)")

reIE.test(userAgent)

var fIEVersion = parseFloat(RegExp["$1"])

IE55 = fIEVersion == 5.5

IE6 = fIEVersion == 6.0

IE7 = fIEVersion == 7.0

IE8 = fIEVersion == 8.0

if (IE55) { return "IE55" }

else if (IE6) { return "IE6" }

else if (IE7) { return "IE7" }

else if (IE8) { return "IE8" }

}

else if (isFF) { return "FF" }

else if (isChrome) { return "Chrome" }

else if (isOpera) { return "Opera" }

else if (isSafari) { return "Safari" }

}

console.log(myBrowser()) //会输出你使用的浏览器类型

</script>