/* 获取当前环境:
系统环境: iOS Android PC
浏览器环境 微信内置浏览器、QQ内置浏览器、正常浏览器
是否app内打开
*/ var ua = navigator.userAgent.toLowerCase(); //获取浏览器标识并转换为小写 var curConfig = {
isiOS: !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //是否苹果
isAndroid: ua.indexOf('android') > -1 || ua.indexOf('adr') > -1, //是否安卓
isPC: isPC(), //是否PC
isWeiXin: ua.match(/MicroMessenger/i) == "micromessenger", //是否微信
isQQ: ua.indexOf(' qq/') > -1, //是否QQ
isApp: ua.indexOf('isApp') > -1, //是否某个应用
};
setTimeout(function() {
$('#span_ua').html(ua); //打印
$('#span_config').html(JSON.stringify(curConfig));
}, 100); function isPC() {
var Agents = new Array("android", "iphone", "symbianOS", "windows phone", "ipad", "ipod");
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (ua.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
                $rootScope.browser = {
versions: function() {
var u = navigator.userAgent,
app = navigator.appVersion;
return {
u: u,
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信
qq: u.match(/\sQQ/i) == " qq" //是否QQ
};
}(),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
};
$rootScope.ostypeReal = $rootScope.browser.versions.ios || $rootScope.browser.versions.iPad ? 'ios' : 'android';
$rootScope.ostype = 'android';

function isPC() {
var Agents = new Array("android", "iphone", "symbianOS", "windows phone", "ipad", "ipod");
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (ua.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
} var ua = navigator.userAgent.toLowerCase(); function bower() {
return {
isiOS: !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
isAndroid: ua.indexOf('android') > -1 || ua.indexOf('adr') > -1,
isPC: isPC(),
isWeiXin: ua.match(/MicroMessenger/i) == "micromessenger",
isQQ: ua.indexOf(' qq/') > -1,
isVrseen: ua.indexOf('vrseen') > -1,
}
}
console.log(JSON.stringify(bower()))
console.log(JSON.stringify(bower().isQQ))

 
/*2017-10-26*/
function isPC() {
var Agents = new Array("android", "iphone", "symbianOS", "windows phone", "ipad", "ipod");
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (ua.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
var ua = navigator.userAgent.toLowerCase(); function bower() {
return {
isiOS: !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
isAndroid: ua.indexOf('android') > -1 || ua.indexOf('adr') > -1,
isPC: isPC(),
isWeiXin: ua.match(/MicroMessenger/i) == "micromessenger",
isQQ: ua.indexOf(' qq/') > -1,
isVrseen: ua.indexOf('vrseen') > -1
}
} function myclick(aid) {
//安卓手机
if (bower().isAndroid) {
// 首先判断是否是 webview 如果包含 VRSeen 说明是我们自己的webview浏览器打开的
if (bower().isVrseen) {
// 内链,走安卓方法,回到详情页
window.android.getAppDetail(aid);
} else if (bower().isWeiXin) {
//微信打开
alert('这是微信中,请通过浏览器打开!');
} else if (bower().isQQ) {
//QQ打开
var url = 'vrseenstore://vrseenstore.com/open?aId=' + aid;
window.location.href = url;
} else {
// 外链,走 scheme 方法 vrseenstore://vrseenstore.com/open?aId=689
var url = 'vrseenstore://vrseenstore.com/open?aId=' + aid;
window.location.href = url;
}
} else if (bower().isiOS) {
//IOS手机
if(bower().isWeiXin){
//微信打开
alert('这是微信,请通过浏览器打开');
}else if(bower().isQQ){
alert('这是QQ,请通过浏览器打开');
} } else{
alert('请在安卓手机上玩!')
}
}

js 判断通过什么打开(安卓、苹果、微信、QQ、浏览器、某个app应用…)的更多相关文章

  1. js 判断是否可以打开本地软件

    js判断时候可以打开本地的软件或者插件 点击一个按钮,打开本地的软件,比如问题反馈,需要调起本地的邮箱,填入一些信息. 这个功能<a>标签有提供支持,但是如果本地没有安装邮箱,则无法打开, ...

  2. js判断设备是否为安卓

    var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > - ...

  3. js判断设备信息,安卓、ios、还是pc端

    前端开发获取设备信息的代码if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { window.location.href =" ...

  4. js判断客户端是pc还是手机及获取浏览器版本

    //判断是pc还是移动端 function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bI ...

  5. js的let语句在安卓手机端的QQ浏览器出错的问题

    关于JavaScript里面的let,let 语句可以声明一个块级作用域的本地变量,并且可选的将其初始化为一个值. <ul id="list"> </ul> ...

  6. 前端判断是否APP客户端打开触屏,实现跳转APP原生组件交互之遐想

    今天做了一个html的活动页面,本来马上就要完工,准备开开心心收尾,结果~... 产品突然提出需要说,要讲html中的某些交互和APP原生组件挂钩,心里一万头xxx奔过~ 静下心来思考 以往我们是判断 ...

  7. js 设备判断(移动端pc端 安卓ios 微信)

    苹果安卓判断 $(function () { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.in ...

  8. js判断安卓客户端或者是ios客户端,是否是微信浏览器

      代码: function xaizai() {  var u = navigator.userAgent, app = navigator.appVersion;  var isAndroid = ...

  9. 【方法】JS判断当前页面环境:PC端/移动端,安卓/IOS,微信环境/QQ环境等等

    [主要知识] 浏览器设备信息:navigator.userAgent(本文中主要用到知识) 浏览器版本信息:navigator.appVersion var ua = navigator.userAg ...

随机推荐

  1. 验证整数 Double 转 int 两种写法

    Double  转int 1)之前一直是使用强转 Double num = Double.parseDouble(object.toString());   int n = (int)num;   i ...

  2. FS BPM 业余研发(用户详细操作手册--单人串行/并行)之 深圳分公司技术部请假审批流程

    1.FS BPM 简介 BPM软件中BPM是英文字母缩写,大致有二个意思.第一.Business Process Management,即业务流程管理,是一套达成企业各种业 务环节整合的全面管理模式. ...

  3. Docker入门之二镜像

    Docker大部分的操作都是围绕三大核心概念:镜像.容器.仓库.学Docker首先得了解这几个词.这几个词可能平时也会有涉及,但Docker中可能不是同样得概念. 一.三大核心概念 镜像:可能在安装软 ...

  4. Centos6.7安装chrome

    cd /etc/yum.repos.dwget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo yum install c ...

  5. Opengl4.5 中文手册—G

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  6. [js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)

    接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的 ...

  7. 【转】String字符串相加的问题

    String字符串相加的问题 前几天同事跟我说我之前写的代码中在操作字符串时候,使用字符串相加的方式而不是使用StringBuffer或者StringBuilder导致内存开销很大.这个问题一直在困扰 ...

  8. 在Ubuntu上安装arm-linux-gcc的问题

    由于之前将Ubuntu的更新关掉了,所以导致我下载32位兼容包一直出错. 在arm-linux-gcc 安装之后,还不能编译程序的话,首先看自己的系统是多少位的,因为网上大部分的安装包都是32位的,所 ...

  9. matplotlib学习之绘图基础

    matplotlib:http://www.cnblogs.com/jasonhaven/p/7609059.html 1.基本图形 散点图:显示两组数据的值,每个点的坐标位置由变量的值决定,头一组不 ...

  10. (转)simhash算法原理及实现

    simhash是google用来处理海量文本去重的算法. google出品,你懂的. simhash最牛逼的一点就是将一个文档,最后转换成一个64位的字节,暂且称之为特征字,然后判断重复只需要判断他们 ...