如需转载请评论或简信,并注明出处,未经允许不得转载
前言
最近在做一个需求,一个html页面需要生成一个二维码图片(用于下载我们的APP),分享到微信。但是我们的APP包括Android应用和IOS应用,一个二维码如何下载两个不同系统的应用呢?
重定向
我们首先想到的是,通过一个html的承接页,判断系统类型,再进行重定向,代码也很简单
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>我的应用</title>
</head>
<body>
<script type="text/javascript">
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 = 'http://www.baidu.com/'; // 跳安卓端下载地址
}
// 这里是iOS浏览器
if (isIOS) {
window.location.href = 'http://www.qq.com/'; // 跳AppStore下载地址
}
// 是微信内部webView
if (is_weixn()) {
alert("请点击右上角按钮, 点击使用浏览器打开");
}
}
// 是微信浏览器
function is_weixn() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
}
</script>
</body>
</html>
这种做法呢,能够实现我们的需求,但是体验相对差一点,需要用户手动点击右上角的按钮,在浏览器中打开,不是微信官方所支持的做法。后来通过查看应用宝的开放平台的功能,发现了一个个人认为更合适的方案
应用宝微下载
- 打开应用宝官网—>应用开放平台—>管理中心
-
点击自己的应用 —> 微下载
-
输入IOS的Appstore下载地址
这样应用宝就会自动帮我们生成一个二维码,安卓用户扫描二维码会出现你的APP在腾讯应用宝中的下载链接,IOS用户扫描二维码会提示跳转到AppStore。
总结
使用第二种方法的话,应用宝内部进行了重定向,原理和我们第一种方法也差不多。但是应用宝和微信都是腾讯旗下的,所以微信不会屏蔽应用宝,反而会给予相对友好的交互提示,同时这种方式也不需要我们自己去做页面重定向的逻辑。所以个人最终还是采用了方法二