判断移动终端类型安卓苹果鸿蒙、查看设备详细信息、跳转到各手机应用商店、判断APP是否已安装
案例1:判断移动终端类型,微信扫描二维码链接可以区分华为(荣耀)、安卓、苹果手机。华为及荣耀会跳到华为应用商店、安卓会提示浏览器打开、苹果跳到苹果商店。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>投教基地移动终端信息</title> <style>
body {
margin: 0; /* 去除页面默认的外边距 */
padding: 0; /* 去除页面默认的内边距 */
background-image: url('./bg.jpg'); /* 设置背景图的URL */
background-size: cover; /* 背景图覆盖整个页面 */
background-repeat: no-repeat; /* 背景图不重复 */
background-color: #ff5b5b;
}
#user_agent{
float:right; }
</style>
</head>
<body> <div id="user_agent"><img decoding="async" src="./open.png" alt="请在右上角浏览器中打开" ></div>
<script type="text/javascript">
var user_agent = window.document.getElementById("user_agent");
var browser = {
versions: function () {
var u = navigator.userAgent, app = navigator.appVersion;
return {//移动终端浏览器版本信息
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/i) || !!u.match(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
HUAWEI: u.indexOf('HUAWEI') > -1 || u.indexOf('HarmonyOS') > -1|| u.indexOf('HONOR') > -1, //是否为huawei
XIAOMI: u.indexOf('MI') > -1 || u.indexOf('redmi') > -1, //是否为小米
webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
};
} (),
language: (navigator.browserLanguage || navigator.language).toLowerCase()
} if (browser.versions.iPhone || browser.versions.iPad || browser.versions.ios) {//苹果版
window.location.href = "https://itunes.apple.com/cn/app/id1628504846?mt=8";
} if (browser.versions.android) {//安卓和华为
if (browser.versions.HUAWEI) {//华为
window.location.href = "https://url.cloud.huawei.com/nonmWB0rew";
//is_weixn();//微信不自动跳转浏览器
}else{ window.location.href = "https://tjjd-common-1304488676.cos.ap-beijing.myqcloud.com/download/Android/app-tjjd.apk"; } } is_weixn();
// 是否为微信
function is_weixn(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)!="micromessenger" ) {
//非微信隐藏提示
user_agent.style.display = "none";
} else {
//alert('请在右上角浏览器中打开下载');
//user_agent.innerHTML = '请在右上角浏览器中打开下载';
//user_agent.style.display = "block";//小米手机失效 }
} </script>
</body>
</html>
案例2:查看设备信息,用 window.navigator对象测试:
<!DOCTYPE html>
<html lang="zh-CN" version="4">
<head>
<meta charset="utf-8">
</head>
<body> <h1>window.navigator对象测试:</h1>
手机<p id="user_agent"></p> <script> document.write("返回当前浏览器的内部名称(开发代号)navigator.appCodeName:" + navigator.appCodeName + "<br>");
document.write("返回获取浏览器的辅版本号,常用于浏览器的补丁货服务包。navigator.appMinorVersion:" + navigator.appMinorVersion + "<br>");
document.write("返回浏览器的官方名称navigator.appName:" + navigator.appName + "<br>");
document.write("返回浏览器的平台和版本信息navigator.appVersion:" + navigator.appVersion + "<br>");
document.write("返回浏览器是否启用 cookie,启用返回 true,禁用返回 false,navigator.cookieEnabled:" + navigator.cookieEnabled + "<br>");
document.write("返回浏览器是否联网,联网则返回 true,断网则返回 false ,navigator.onLine:" + navigator.onLine + "<br>");
document.write("返回浏览器运行的操作系统平台navigator.platform:" + navigator.platform + "<br>");
document.write("返回浏览器的厂商和版本信息,即浏览器运行的操作系统、浏览器的版本、名称navigator.userAgent:" + navigator.userAgent + "<br>");
document.write("返回浏览器是否支持运行 Java Applet 小程序,支持则返回 true,不支持则返回 false,navigator.javaEnabled():" + navigator.javaEnabled() + "<br>"); document.write("返回获取当前浏览器的语言,例如,可能的一个结果是“zh-CN”navigator.language:" + navigator.language + "<br>");
document.write("返回获取计算机系统的 CPU 型号,例如,Inter通常得到的结果是x86。navigator.cpuClass :" + navigator.cpuClass + "<br>");
document.write("返回获取 OS 使用的默认语言。navigator.systemLanguage :" + navigator.systemLanguage + "<br>");
document.write("返回获取浏览器支持的所有的MIME类型的数组。navigator.mimeTypes :" + navigator.mimeTypes + "<br>");
document.write("获取安装在浏览器上的所有插件的数组navigator.plugins :" + navigator.plugins + "<br>");
document.write("获取浏览器的产品名,例如,可能的结果是Gecko。navigator.product :" + navigator.product + "<br>"); document.write("返回 获取浏览器产品的更多信息,例如,可能的结果是20030107。navigator.productSub :" + navigator.productSub + "<br>");
document.write("获取浏览器的厂商名称,例如,可能的结果是Google Inc.。navigator.vendor :" + navigator.vendor + "<br>");
document.write("获取浏览器的厂商更多信息navigator.vendorSub :" + navigator.vendorSub + "<br>"); var user_agent = window.document.getElementById("user_agent"); var u = navigator.userAgent;
var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1;//android终端
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
//android端
if (isAndroid) {
let hidden =
window.document.hidden ||
window.document.mozHidden ||
window.document.msHidden ||
window.document.webkitHidden;
if (typeof hidden == "undefined" || hidden == false) {
//window.location.href = "https://a.app.qq.com/o/simple.jsp?pkgname=fundtown.toujiao"; //安卓应用市场地址
user_agent.innerHTML = '安卓';
}
} else if (isIOS) {
//ios端
let hidden =
window.document.hidden ||
window.document.mozHidden ||
window.document.msHidden ||
window.document.webkitHidden;
if (typeof hidden == "undefined" || hidden == false) {
window.location.href = "https://itunes.apple.com/cn/app/id1628504846?mt=8"; //app store地址
user_agent.innerHTML = '苹果';
}
} </script>
</body>
</html>
案例3:JS跳转到各手机应用商城
<script type="text/javascript">
//js跳转到各手机应用商城
//1.是否是内置浏览器
function is_neizhi() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return "weixin";
} else if (ua.match(/QQ/i) == "qq") {
return "QQ";
} else if (ua.match(/Alipay/i) == "alipay" && payway == 2) {
return "alipay";
}
return false;
}
//2.判断手机品牌
function verifyBrand() {
const userAgent = navigator.userAgent.toLowerCase()
const isIphone = userAgent.match(/(iphone|ipad|ipod)/i);
const isHuawei = userAgent.match(/huawei/i);
const isHonor = userAgent.match(/honor/i);
const isOppo = userAgent.match(/oppo/i);
const isOppoR15 = userAgent.match(/PACM00/i);
const isVivo = userAgent.match(/vivo/i);
const isXiaomi = userAgent.match(/mi\s/i);
const isXIAOMI = userAgent.match(/xiaomi/i);
const isXiaomi2s = userAgent.match(/mix\s/i);
const isRedmi = userAgent.match(/redmi/i);
const isSamsung = userAgent.match(/sm-/i);
const isSamsung2 = userAgent.match(/samsung/i);
if (isIphone) {
return 'iphone'
} else if (isHuawei || isHonor) {
return 'huawei';
} else if (isOppo || isOppoR15) {
return 'oppo';
} else if (isVivo) {
return 'vivo';
} else if (isXiaomi || isRedmi || isXiaomi2s || isXIAOMI) {
return 'xiaomi';
} else if (isSamsung || isSamsung2) {
return 'samsung';
} else {
return 'other'
}
}
//3.跳转下载的主方法,如果是内置浏览器,需要跳转到手机自带的浏览器方可使用
function goDownload() {
if (is_neizhi()){
//内置浏览器
alert('请用自带浏览器打开')
return;
}
const iosLinkUrl = "https://itunes.apple.com/cn/app/id1628504846?mt=8";//苹果
const androidLinkurl ="https://tjjd-common-1304488676.cos.ap-beijing.myqcloud.com/download/Android/app-tjjd.apk";//安卓其他
const huaweiUrl = 'appmarket://details?id=fundtown.toujiao';//华为
const oppoUrl = "oppomarket://details?packagename=fundtown.toujiao";//oppo
const vivoUrl = "vivomarket://details?id=fundtown.toujiao";//vivo
const xiaomiUrl = 'mimarket://details?id=fundtown.toujiao';//小米
const samsungUrl = 'samsungapps://ProductDetail/fundtown.toujiao';//三星
//以下未用到
const qqChal="tmast://appdetails?pname=fundtown.toujiao"; // 应用宝 直接下载
const baiduChal="http://market.android.com/details?id=<PackageName>"; // 百度搜狗网页
const jinliChal="http://m.appgionee.com/marketdetail?id=<PackageName>"; // 金立网页
const lenovoChal="http://market.lenovomm.com/details?id=<PackageName>"; // 联想
const anzhiChal="anzhimarket://details?id=<PackageName>"; // 安智市场
const meizuChal="mstore://details?package_name=<PackageName>"; // 魅族 switch (this.verifyBrand()) {
case 'iphone':
window.location.href=iosLinkUrl ;
break;
case 'xiaomi':
window.location.href=xiaomiUrl;
break;
case 'huawei':
window.location.href=huaweiUrl;
break;
case 'vivo':
window.location.href=vivoUrl;
break;
case 'oppo':
window.location.href=oppoUrl;
break;
case 'samsung':
window.location.href=samsungUrl;
break;
default:
window.location.href=androidLinkurl;
break;
}
}
goDownload()
</script>
判断APP(sms为例)是否已经安装,安装打开否则下载
var u = navigator.userAgent;
var isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 // 微信内
if(isWeixin) {
alert('请在浏览器上打开')
} else {
//android端
if (isAndroid) {
//安卓app的scheme协议
window.location.href = 'sms://';
setTimeout(function(){
let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHidden
if(typeof hidden =="undefined" || hidden ==false){
//下载
window.location.href ="https://xxxx";
}
}, 2000);
}
//ios端
if (isIOS) {
//ios的scheme协议
window.location.href = 'sms://'
setTimeout(function(){
let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHidden
if(typeof hidden =="undefined" || hidden ==false){
//App store下载地址
window.location.href = "http://itunes.apple.com/app/xx";
}
}, 2000);
}
}
判断移动终端类型安卓苹果鸿蒙、查看设备详细信息、跳转到各手机应用商店、判断APP是否已安装的更多相关文章
- js 判断访问终端类型
// 判断访问终端类型 var browser = { versions: function() { var u = navigator.userAgent, app = navigator.appV ...
- docker inspect命令查看镜像详细信息
使用 inspect 命令查看镜像详细信息,包括制作者.适应架构.各层的数字摘要等. # docker inspect --help Usage: docker inspect [OPTIONS] N ...
- Linux查看CPU详细信息
1.查看CPU详细信息 在Linux服务器上查看CPU详细信息: cat /proc/cpuinfo 输出结果: processor : 0 vendor_id : GenuineIntel cpu ...
- dmidecode查看设备硬件信息
在bash里输入:dmidecode -s system-product-name 或者lshw -class system 在Linux系统环境下(CentOS .4和Ubuntu .04已确认), ...
- [SVN(Ubuntu)] SVN 查看历史详细信息
转载: http://lee2013.iteye.com/blog/1074457 以下内容,对ubuntu命令行查看代码变化非常有用. SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过 ...
- Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 "See 'EntityValidationErrors' property for more details.&qu ...
- linux查看硬件详细信息dmidecode
[root@zabbix_server src]# dmidecode|more # dmidecode 2.12 SMBIOS 2.7 present. structures occupying b ...
- linux查看硬盘详细信息
最近公司新进了一批设备,为了弄清楚厂家有没有忽悠我们,分配给我一个任务 查看磁盘是不是二手的,window上有鲁大师啥的那么linux有什么软件吗? 答案是有的! 叫做smart 具体请查看: htt ...
- 查看.mobileprovision 详细信息
.mobileprovision 用诸如sublime 等工具是无法打开. 可以通过shell命令查看: security cms -D -i 某某.mobileprovision
- linux命令stat,查看文件详细信息
可以查看文件的各类具体信息:文件权限的数字形式0664:uid.gid的权限的数字形式等 更多用法参考stat --help lsattr test.sh 查看文件的其他属性:只读属性.只可以追加写属 ...
随机推荐
- vi指令总结
VI常用技巧 VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐 ...
- Python 爬取广州商学院新闻----测试版
Python 爬取广州商学院新闻----测试版 程序简述:抓取广州商学院新闻栏目的全部新闻内容 开发环境:PyCharm Community Edition 爬取连接:http://news.gzcc ...
- Avalonia开源控件库强力推荐-Semi.Avalonia
Avalonia是什么? Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序.它使用自己的渲染引擎绘制UI控件,确保在Windows.macOS.Linux.Android ...
- 鲜花:bitset求解高维偏序
书接上回 一维偏序直接做.二维偏序套线段树或归并排序.三维偏序可以树套树或者 CDQ 套树,那四维偏序呢?可以 CDQ 套树套树.那五维偏序呢?可以发现,无论是 CDQ 分治还是树,都很难再继续嵌套, ...
- 题解:CF1301D Time to Run
CF1301D Time to Run 题解 思维题. 分析 把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图.而需要走遍整个方格图,可以证明只要 \(k\) 不超过 \(4nm-2n- ...
- isPrimitive:检测数据是不是原始数据
function isPrimitive(value) { return isStatic(value) || typeof value === 'symbol}
- NOIP2023模拟2联测23 T2 害怕
NOIP2023模拟2联测23 T2 害怕 好像写了一种出题人意料之外的算法. 思路 在生成树上加入白边,白边和若干条蓝色边形成环,环上的蓝色边必须要分配比该白色边更小的边权(最小生成树). 给每一条 ...
- php 异步并行
如果你有一批数据需要调用远程接口处理,而远程接口处理时间很长,比如需要1秒左右,那10条数据就是10秒,你的程序就要10S才能结束,而这样的话一旦接口提供方有点问题,就需要20秒 30秒甚至更久,这样 ...
- 不错的PHP扩展
不错的PHP扩展 ext name ext description ds data structure 提供list hash queue等数据结构 igbinary 数据压缩(速度快 压缩后内容小) ...
- 一个.NET开源、快速、功能丰富的跨平台阅读服务器
前言 今天大姚给大家分享一个基于.NET开源的快速.功能丰富的跨平台阅读服务器,它的设计初衷是提供一个全面的解决方案,满足用户的所有阅读需求.用户可以设置自己的服务器,并与朋友和家人分享阅读收藏:Ka ...