const ua = navigator.userAgent.toLowerCase();

const isInWeibo = () => / Weibo /i.test(ua); //微博 ture

const isInWeixin = () => /MicroMessenger/i.test(ua); //微信内置浏览器

const isInQQ = () => /QQ/i.test(ua); //qq内置浏览器

const isAndroid = () => /Android/i.test(ua);

const isDingTalk = () => /DingTalk/i.test(ua);

const isUCBrowser = () => /UCBrowser/i.test(ua);

const isBaidu = () => /Baidu//i.test(ua);

获取浏览类型与系统的函数

// 各主流浏览器

function getBrowser() {

var u = navigator.userAgent;

var bws = [{

name: 'sgssapp',

it: /sogousearch/i.test(u)

}, {

name: 'wechat',

it: /MicroMessenger/i.test(u)

}, {

name: 'weibo',

it: !!u.match(/Weibo/i)

}, {

name: 'uc',

it: !!u.match(/UCBrowser/i) || u.indexOf(' UBrowser') > -1

}, {

name: 'sogou',

it: u.indexOf('MetaSr') > -1 || u.indexOf('Sogou') > -1

}, {

name: 'xiaomi',

it: u.indexOf('MiuiBrowser') > -1

}, {

name: 'baidu',

it: u.indexOf('Baidu') > -1 || u.indexOf('BIDUBrowser') > -1

}, {

name: '360',

it: u.indexOf('360EE') > -1 || u.indexOf('360SE') > -1

}, {

name: '2345',

it: u.indexOf('2345Explorer') > -1

}, {

name: 'edge',

it: u.indexOf('Edge') > -1

}, {

name: 'ie11',

it: u.indexOf('Trident') > -1 && u.indexOf('rv:11.0') > -1

}, {

name: 'ie',

it: u.indexOf('compatible') > -1 && u.indexOf('MSIE') > -1

}, {

name: 'firefox',

it: u.indexOf('Firefox') > -1

}, {

name: 'safari',

it: u.indexOf('Safari') > -1 && u.indexOf('Chrome') === -1

}, {

name: 'qqbrowser',

it: u.indexOf('MQQBrowser') > -1 && u.indexOf(' QQ') === -1

}, {

name: 'qq',

it: u.indexOf('QQ') > -1

}, {

name: 'chrome',

it: u.indexOf('Chrome') > -1 || u.indexOf('CriOS') > -1

}, {

name: 'opera',

it: u.indexOf('Opera') > -1 || u.indexOf('OPR') > -1

}];

for (var i = 0; i < bws.length; i++) {

if (bws[i].it) {

return bws[i].name;

}

}

return 'other';

}

// 系统区分

function getOS() {

var u = navigator.userAgent;

if (!!u.match(/compatible/i) || u.match(/Windows/i)) {

return 'windows';

} else if (!!u.match(/Macintosh/i) || u.match(/MacIntel/i)) {

return 'macOS';

} else if (!!u.match(/iphone/i) || u.match(/Ipad/i)) {

return 'ios';

} else if (!!u.match(/android/i)) {

return 'android';

} else {

return 'other';

}

}

前端H5用js判断页面在IOS,Android,微信,pc端打开的方法

// 判读是否是IOS打开

isIos: function () {

var agent = navigator.userAgent;

var isiOS = !!agent.match(/iPhone|mac|iPod|iPad|ios/i);

return isiOS

},

// 判读是否是android打开

isIos: function () {

var agent = navigator.userAgent;

var isiOS = agent.match(/(Android)\s+([\d.]+)/);

return isiOS

},

判读是否是PC打开

isPc: function () {

var plat = navigator.platform;

var win = plat.indexOf(“Win”) == 0;

var mac = plat.indexOf(“Mac”) == 0;

if (win || mac) {

return true

} else {

return false

}

} ,

判读是否是微信中打开

isWeiXin: function () {

var ua = window.navigator.userAgent.toLowerCase();

if((/MicroMessenger/i).test(ua)){

return true;

}else{

return false;

}

},

js判断H5页面是否是在QQ\UC浏览器中打开

//js判断H5页面是否是在QQ\UC浏览器中打开

var u = navigator.appVersion;

var uc = u.split('UCBrowser/').length > 1 ? 1 : 0;

var qq = u.split('MQQBrowser/').length > 1 ? 2 : 0;

var wx = ((u.match(/MicroMessenger/i)) && (u.match(/MicroMessenger/i).toString().toLowerCase() == 'micromessenger'));

//注意判断是QQ浏览器还需排除微信打开环境,即:

if(qq && !wx){

return 1;

}else{

return 0;

}

//判断是否是UC浏览器打开

if(uc){

return 1;

}else{

return 0;

}

应用场景:

调用浏览器自带分享功能实现第三方分享

去哪编辑html5页面,h5页面 判断网页在哪打开相关推荐

  1. 微信首页登录html页面,H5页面接入微信授权登录和分享

    前期准备 接入微信授权 分静默授权和非静默授权两种 静默授权: scope=snsapi_base,没有弹窗,只能获取用户的openId. 非静默授权: scope=snsapi_userinfo,有 ...

  2. php脚本判断页面刷新,javascript判断网页是关闭还是刷新

    原理就是通过离开页面行为时间onunload触发时间去检测此时的浏览器的窗口大小,根据大小由此判断用户是刷新,跳转或是关闭行为程序 代码如下 window.onunload = function(){ ...

  3. 怎样微信扫描二维码跳转页面,H5页面在微信中下载APP的实现方式

    使用微信推广的用户经常都会遇到推广链接被拦截导致无法下载app的情况,此时用户在微信中打开会提示" 已停止访问该网页 ".这对于使用微信营销的商家来说就很不友好且损失非常大,因为用 ...

  4. 下列不可以判断网页是否正常打开的是_打开视频卡、无法加载原因查找

    可能原因:套餐带宽错办.网速不达标.用路由多机使用.FLASH版本或视频软件问题.客户电脑操作系统问题.电脑配置问题.上网高峰期等. 处理思路: 一:检查套餐带宽 通过系统查询客户的宽带套餐是否与办理 ...

  5. 判断网页是浏览器打开还是钉钉打开

    //判断是否浏览器打开,如果是,跳转到钉钉 //判断是否浏览器打开,如果是浏览器,跳转到钉钉 if (this.dd.env.platform=="notInDingTalk") ...

  6. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  7. html5微杂志源码,H5制作又一利器:分分钟制作一个H5页面

    在当下"移动+社交"的传播时代,HTML5营销凭借简单快捷.灵活炫酷的特性吸引了大批用户认可和使用,并逐渐形成了移动营销的一个新热点. 一份H5海报通常涵盖文字.图片.音乐(声音) ...

  8. html5 页面回退,一种基于浏览器堆栈管理的H5页面动态回退方法与流程

    本技术应用于在浏览器运行的H5应用中,涉及浏览器的History历史堆栈管理技术,尤其是移动端H5应用在浏览器中的History历史堆栈管理技术. 背景技术: 移动端H5应用作为一款基于浏览器历史堆栈 ...

  9. 教你判断一个APP页面是原生的还是H5页面

    关注公众号 前端开发博客,回复"加群" 加入我们一起学习,天天进步 刚好是周末,无意之间在收集相关资料的时候,发现有部分童鞋在问<如何判断一个APP页面是不是H5页面> ...

最新文章

  1. HDU 1853 Cyclic Tour
  2. [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...
  3. Vagrant Ansible Playbook 安装一群虚拟机
  4. AtCoder AGC030C Coloring Torus (构造)
  5. could not open C:\Program Files\Java\jdk1.6.0-11\lib\i386\jvm.cfg
  6. 【NetApp】NetBoot的使用方法
  7. div与div区别小结
  8. long 转为string_面试必问 Redis数据结构底层原理String、List篇
  9. java reflectionutils_Spring中的各种Utils(五):ReflectionUtils详解(转载)
  10. java 拷贝替换文件夹_比较两个不同文件夹中的两个文件,并将其替换为较新的文件夹...
  11. config userc.php,框架内置Config.php配置
  12. java中地图查询比较慢,在java中缓慢的地图
  13. 2018年度报告单_2018年度最佳在线IT课程
  14. 一线城市的繁荣vs年轻人的梦想?
  15. java做度量衡换算器,磅换算计算器(公斤和磅在线换算器)
  16. 力扣刷题 DAY_69 回溯
  17. 按日查看项目的预算成本和实际成本
  18. Java对象数组的初始化
  19. c++如何生成release版本
  20. vot-toolkit-python测试DiMP50在VOT2018上的表现

热门文章

  1. wxWidgets:wxRegKey类用法
  2. boost::spirit模块实现罗马数字解析器(演示符号表)的测试程序
  3. boost::mp11::mp_min_element相关用法的测试程序
  4. Boost::context模块callcc的解析器测试程序
  5. Boost:在boost:array上使用constexpr进行测试
  6. ITK:读取并打印DICOM标签
  7. ITK:来自图像的多分辨率金字塔
  8. ITK:指定区域裁剪图像
  9. VTK:模型之ExtractLargestIsosurface
  10. OpenCV图像金字塔pyrDown和pyrUp的实例(附完整代码)