js 判断通过什么打开(安卓、苹果、微信、QQ、浏览器、某个app应用…)
/* 获取当前环境:
系统环境: 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应用…)的更多相关文章
- js 判断是否可以打开本地软件
js判断时候可以打开本地的软件或者插件 点击一个按钮,打开本地的软件,比如问题反馈,需要调起本地的邮箱,填入一些信息. 这个功能<a>标签有提供支持,但是如果本地没有安装邮箱,则无法打开, ...
- js判断设备是否为安卓
var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > - ...
- js判断设备信息,安卓、ios、还是pc端
前端开发获取设备信息的代码if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { window.location.href =" ...
- js判断客户端是pc还是手机及获取浏览器版本
//判断是pc还是移动端 function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase(); var bI ...
- js的let语句在安卓手机端的QQ浏览器出错的问题
关于JavaScript里面的let,let 语句可以声明一个块级作用域的本地变量,并且可选的将其初始化为一个值. <ul id="list"> </ul> ...
- 前端判断是否APP客户端打开触屏,实现跳转APP原生组件交互之遐想
今天做了一个html的活动页面,本来马上就要完工,准备开开心心收尾,结果~... 产品突然提出需要说,要讲html中的某些交互和APP原生组件挂钩,心里一万头xxx奔过~ 静下心来思考 以往我们是判断 ...
- js 设备判断(移动端pc端 安卓ios 微信)
苹果安卓判断 $(function () { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.in ...
- js判断安卓客户端或者是ios客户端,是否是微信浏览器
代码: function xaizai() { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = ...
- 【方法】JS判断当前页面环境:PC端/移动端,安卓/IOS,微信环境/QQ环境等等
[主要知识] 浏览器设备信息:navigator.userAgent(本文中主要用到知识) 浏览器版本信息:navigator.appVersion var ua = navigator.userAg ...
随机推荐
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
创建对象 方式① 直接使用new Object() var obj = new Object(); 方式② 使用空的{}大括号 var obj2 = {}; 测试 增加属性,访问属性 我们要为创建的对 ...
- MultipleOutputs新旧api
package MRNB_V4; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop.con ...
- JavaScript中的位置屬性
屏幕中的位置(直接使用,無需前綴): screenLeft.screenTop:除了火狐都支持 screenX.screenY: 窗口的大小(谷歌的inner=outer,直接使用,無需前綴): in ...
- CentOS7的一些初始化
默认最小化安装 [root@GVMCET001 ~]# nmtui 设置网络,主机名等 [root@GVMCET001 ~]# yum update 更新系统 SSH [root@GVMCET001 ...
- js Date() 浏览器兼容问题解决
一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中 ...
- Ubuntu17.04安装wps
1.进入http://community.wps.cn/download/下载wps-office安装包,我下载的是dep的包. 2.进行安装执行命令:sudo dpkg -i wps-office_ ...
- linux环境下根据文件的某一列进行去重
momo@ubuntu:~/user/txt$ cat test.txt1 chen nihao2 chen hello3 li nimenhao4 he dajiahao5 li nimenhaom ...
- 翻译:MariaDB ALTER TABLE语句
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- babel的使用详解
由于es6的很多特性在旧的浏览器下支持不好,我们在使用的时候需要将其转化为es5,下面介绍babel解析器的使用 一:独立使用babel的方法 1.本地安装babel-cli npm install ...
- asp.net core后台系统登录的快速构建
登录流程图 示例预览 构建步骤 当然,你也可以直接之前前往coding仓库查看源码,要是发现bug记得提醒我啊~ LoginDemo地址 1. 首先你得有一个项目 2. 然后你需要一个登录页面 完整L ...