/* 获取当前环境:
系统环境: 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. eclipse复制到IDEA中文不匹配,编译失败

    今天使用把eclipse的包复制到Intellij Idea下,结果在编译的时候,它说我的数据是GBK,而Idea默认的数据是UTF-8,因此出错了... 解决:在项目中直接把对象的encoding. ...

  2. 个人理解---在开发中何时加入日志记录功能[java]

    是这样的:俩个月前做的一个小功能,今天经理突然问我这个'清除复投记录'功能是不是我做的,我说是,很久以前了.他说昨天一个客户找过来了,后台把人家的复投记录清除掉了,不知道何时清除的,我记得当时做的时候 ...

  3. DelayQueue使用示例之KTV包厢记时

    在学习Java 多线程并发开发过程中,了解到DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走. ...

  4. 常用Linux命令、包括vi 、svn

    /etc/init.d/network restart//===========================================更新脚本cd /www/scripts更新站点./sta ...

  5. 为什么你需要将代码迁移到ASP.NET Core 2.0?

    随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代.开发者们可以选择使用命令行.个人喜好的文本编辑器.Visual Studio 2017 15.3 和 Visual Stu ...

  6. LinkedHashMap 源码解析

    概述: LinkedHashMap实现Map继承HashMap,基于Map的哈希表和链该列表实现,具有可预知的迭代顺序. LinedHashMap维护着一个运行于所有条目的双重链表结构,该链表定义了迭 ...

  7. NavigationController的返回按钮自定义

    假设需求时这样: NavigationController下有2个视图,从A视图会Push到B视图,默认情况下,当显示视图B时,视图B的导航bar上会出现返回按钮,按钮标题文字默认为A视图的title ...

  8. 使用node.js检查js语法错误

    如果没有一些工具和插件写JavaScript代码遇到语法错误找起来很费时间,请教了同事怎么用node.js检查 用浏览器测试的时候报语法错误. 1.点击红圈中的蓝色按钮,下次刷新是会在抛出异常的时候自 ...

  9. 应用程序PING发出的是什么报文?

    Ping位于用户层,一般用来测试一台主机是否可达,该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显 应答

  10. 记忆搜索与动态规划——DP背包问题

    题目描述 01背包问题 有n个重量和价值分别为\(w_i,v_i\)的物品.从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值中总和的最大值. 限制条件 1 <= n <= 10 ...