一个应用通常会需要分别合成两个二维码,这样,有些产品就感觉比较麻烦。前一段公司产品,也是看着别人家都是用一个二维码,也是提出了这样的一个需求,其实,就是增加新的HTML文件,放在服务器上,当不同客户端的二维码进行扫描的时候,调用不同的浏览器,根据判断是什么系统的设备扫描,进行跳转,比如是,微信扫描跳转,利用Safari浏览器打开跳转到,你的下载页面,
如果是Android,跳到Android下载地址。
1. 首先需要一个中间页面,判断是什么系统的设备扫描,这个是个HTML文件内容如下,就是一个跳转实例,具体可以跳转到实际的下载地址。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
// c=Q23DR32是注册时扫描获取的邀请码。
// 这样加参数,后面的参数会被自动忽略,不会影响加载此网页
goDownload();
// 去下载
function goDownload() {
var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
// 这里是安卓浏览器
if (isAndroid) {
window.location.href = 'https://www.hao123.com'; // 跳安卓端下载地址
}
// 这里是iOS浏览器
if (isIOS) {
window.location.href = 'http://61.188.178.200/salesman.html'; // 跳AppStore下载地址
}
// 是微信内部webView
if (is_weixn()) {
alert("请点击右上角按钮, 点击使用浏览器打开");
}
// 是PC端
if (IsPC()) {
window.location.href = 'http://www.sina.com.cn'; // 公司主页
}
}
// 是微信浏览器
function is_weixn(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
return true;
} else {
return false;
}
}
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
</script>
</body>
</html>