判断iOS、Android以及PC端的示例代码
前言
我们在做移动端时,在跨平台、浏览器、移动设备兼容的时候,要根据设备、浏览器做特定调整,想起用navigator.userAgent来对浏览器类型进行判断,查了点资料,在这里总结下
还有一个就是移动端的缩放问题,在meta标签中进行设置,对部分浏览器进行强制性的限制
1.navigator的一些常用属性
navigator为window对象的一个属性,指向了一个包含浏览器相关信息的对象
navigator.appVersion浏览器的版本号
navigator.language浏览器使用的语言
navigator.userAgent浏览器的userAgent信息
其中userAgent属性是一个只读的字符串,声明了浏览器用于HTTP请求的用户代理头的值。
2.较常见的ios端、Android端及PC端的判断
简单点的
/*判断浏览器类型*/
letuserAgent=navigator.userAgent;
/*判断手机型号*/
letapp=navigator.appVersion;
/*Android终端*/
letisAndroid=userAgent.indexOf('Android');
/*ios终端*/
letisMac=!!userAgent.match(/\(i[^;]+;(U;)?CPU.+MacOSX/);
封装性的
/*判断各类型方法*/
constbrowser={
version:function(){
constuserAgent=navigator.userAgent;
return{
/*判断是否是ios*/
ios:!!userAgent.match(/\(i[^;]+;(U;)?CPU.+MacOSX/),
/*判断是否是Android*/
android:userAgent.indexOf('Android')>-1||userAgent.indexOf('Adr')>-1,
/*判断是否是移动端*/
mobilePhone:!!userAgent.match(/AppleWebKit.*Mobile.*/),
/*IE内核*/
trident:userAgent.indexOf('Trident')>-1,
/*opera内核*/
presto:userAgent.indexOf('Presto')>-1,
/*苹果、谷歌内核*/
webkit:userAgent.indexOf('AppleWebKit')>-1,
/*火狐内核*/
gecko:userAgent.indexOf('Gecko')>-1&&userAgent.indexOf('KHTML')==-1,
/*判断是否是IPone手机或者QQHD浏览器*/
iphone:userAgent.indexOf('iPhone')>-1,
/*判断是否是iPad*/
iPad:userAgent.indexOf('iPad')>-1,
/*判断是否是web应用程序(能够让用户完成某些特定任务的网站),没有头部和底部*/
webApp:userAgent.indexOf('Safari'),
/*是否是微信*/
weixin:userAgent.indexOf('MicroMessenger'),
/*QQ*/
QQ:userAgent.match(/\sQQ/i)=='qq',
}
}(),
/*判断浏览器使用的语言:navigator.language除IE浏览器外的浏览器使用的语言,
*navigator.browserLanguageIE浏览器使用的语言
*/
browserLanguage:(navigator.language||navigator.browserLanguage).toLowerCase()
};
if(browser.version.ios||browser.version.android||browser.version.mobilePhone){
console.log('是移动端');
}
3.meta标签设置
如对浏览器进行强制全屏的设置(UC全屏),webapp模式等
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。