/* 获取当前环境:
系统环境: 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. could not get next sequence value

    1.触发事件 在电脑A上敲项目代码,数据库原始资料是直接使用别人写好的sql导入(建表和导入表数据等): 将电脑A上数据库的资料,使用PL/SQL Developer导出项目中所用表(此时未导出Ora ...

  2. 关于sublime3的使用

    一.安装Package Control 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码: import urllib.request,os; pf ...

  3. 关于Android WebView上传文件的解决方案

    我们在开发需求的时候,难免会接入一下第三方的H5页面,有些H5页面是具有上传照片的功能,Android 中的 WebView是不能直接打开文件选择弹框的 接下来我讲简单提供一下解决方案,先说一下思路 ...

  4. 用static声明的函数和变量小结

    static 声明的变量在C语言中有两方面的特征: 1).变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值.这一点是它与堆栈变量和堆变量的区别. 2).变量用static ...

  5. WPA/WPA2加密破解

    WPA/WPA2无线密码破解这里主要介绍两种方法:穷举PIN码.穷举密码 穷举PIN码(共11000种组合)破解速度快,需要一些条件(路由器支持WPS.QSS功能),路由器信号良好.无论密码多复杂,条 ...

  6. webpack2系列step1

    第一篇:HTML 本文将一步一步的介绍webpack2的配置,从最基础的一直到与node结合. 操作都一样: midir step1 && cd step1 npm init -y n ...

  7. 初识 JShell

    Java9 现在吵得热火朝天,赶紧顺势学习一波喽! JDK9 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-dow ...

  8. Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理

    这个问题是因为在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),下面将记录我遇到问题的过程及解决的方法. 在搭建完LNMP环境后用Navicate连接出错 遇到这个问题 ...

  9. 计蒜客 2017 NOIP 提高组模拟赛(四)Day1 T2 小X的密室

    https://nanti.jisuanke.com/t/17323 小 X 正困在一个密室里,他希望尽快逃出密室. 密室中有 N 个房间,初始时,小 X 在 1号房间,而出口在 N号房间. 密室的每 ...

  10. Node.js学习之TCP/IP数据通讯

    Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...