const ua: string = window.navigator.userAgent;

const isWeixin: boolean = /MicroMessenger/i.test(ua);
const isAndroid: boolean = /Android/i.test(ua);
const isIOS: boolean = /iP[hone|ad|od] OS/i.test(ua);
const isIphone: boolean = /iPhone/i.test(ua); // iphoneX iphoneXS 刘海高度 30px
const isIphoneX: boolean = !!(isIphone && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 375 && window.screen.height === 812); // 刘海高度: 44px
const isIphoneXSMAX: boolean = !!(isIphone && window.devicePixelRatio && window.devicePixelRatio === 3 && window.screen.width === 414 && window.screen.height === 896); // 刘海高度 33px
const isIphoneXR: boolean = !!(isIphone && window.devicePixelRatio && window.devicePixelRatio === 2 && window.screen.width === 414 && window.screen.height === 896); // iPhoneX版本以上的刘海屏
const isIphoneXup: boolean = isIphoneX && isIphoneXSMAX && isIphoneXR; export default {
isWeixin,
isAndroid,
isIOS,
isIphone,
isIphoneX,
isIphoneXSMAX,
isIphoneXR,
isIphoneXup
}

更详细的内容可以访问 http://www.waigai.cn

使用JS判断不同的终端设备的更多相关文章

  1. js判断本机是否已安装app

    需求:在浏览器或者app webview中打开的页面,js判断本机是否已安装搜狐新闻客户端. 一.微信 1.分享——好友/朋友圈,feed会有搜狐新闻标记,打开url后缀参数isappinstalle ...

  2. js判断网页是否加载完毕 包括图片

    <script type="text/javascript" language="JavaScript"> //: 判断网页是否加载完成 docum ...

  3. 为不同分辨率单独做样式文件,在页面头部用js判断分辨率后动态加载定义好的样式文件

    为不同分辨率单独做样式文件,在页面头部用js判断分辨率后动态加载定义好的样式文件.样式文件命名格式如:forms[_屏幕宽度].css,样式文件中只需重新定义文本框和下拉框的宽度即可. 在包含的头文件 ...

  4. JS判断网页是否在微信中打开/

    JS判断网页是否在微信中打开,代码如下: <script type="text/javascript"> function is_weixn(){ var ua = n ...

  5. js判断当前页面在移动设备还是在PC端中打开

    方法一: var isPC = function () { var userAgentInfo = navigator.userAgent.toLowerCase(); var Agents = ne ...

  6. js判断undefined类型

    js判断undefined类型 if (reValue== undefined){    alert("undefined");    }  发现判断不出来,最后查了下资料要用ty ...

  7. js判断只能输入数字和只能输入

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...

  8. 兼容各浏览器的js判断上传文件大小

    由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-,Firefox10,Opera11.,safari5.,chrome17 <!DOCTYPE html> < ...

  9. JS判断字符串长度的5个方法

    这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符)   方法一:    代码如下: String.pr ...

随机推荐

  1. 【awk】用awk将Fasta文件序列变成一行

    awk: awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" &q ...

  2. Laravel资源路由

    Route::resource('article', 'ArticleController'); 如果我们以get的方式请求‘article’,会自动分发到ArticleController的crea ...

  3. CentOS 7 yum install cobbler2.8.3

    安装前注意事项: 1.cobbler主机要为静态ip,否则和dhcpd服务冲突. 2.如果用虚拟机安装,client的内存请设置为2g以上,否则会报错. 3.kickstart文件中不要出现中文,大坑 ...

  4. Exp1 PC平台逆向破解 20164303 景圣

    逆向及Bof基础实验 实验对象 文件名为pwn1的linux可执行文件. 实验目标:程序正常执行流程weimain调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段 ...

  5. JS(JavaScript)的进一步了解6(更新中···)

    元素的属性 div.attributes 是所有标签属性构成的数据集合 div.classList 是所有class名构成的数组集合 在classList的原型链上看以看到add()和remove() ...

  6. linux服务基础之http协议

    URI:Uniform Resource Identifier URL: Uniform Resource Locator,用于描述某服务器某特定资源的位置 URN: Uniform Resource ...

  7. HttpClient throws TaskCanceledException on timeout

    error msg: HttpClient throws TaskCanceledException on timeout HttpClient is throwing a TaskCanceledE ...

  8. vue-cli 最强指南

    今天在这篇文章里,会对 vue-cli 的功能做个详细的整理,把 vue-cli 所有的功能都列出来.注:这个是官网连接:https://cli.vuejs.org/zh/guide/ ,建议多看细看 ...

  9. chromdriver与geckodriver和浏览器版本问题

    chromdriver74与chrom74对应 geckodriver024与Firefox66对应 亲测有效

  10. Java并发编程的挑战

    并发编程的目的是为了让程序运行得更快,但是,并不是线程启动的越多,就能让程序最大限度地并发执行.并发编程时,会面临非常多的挑战,比如上下文切换的问题,死锁的问题,以及受限于各种硬件和软件的资源限制问题 ...