由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时点击下载按钮没反应,我想到的是做一个提示用户在浏览器中打开下载。
可以参考:微信打开网址添加在浏览器中打开提示 和 微信扫描打开APP下载链接提示代码优化。
其实原来很简单,就是判断当前是在微信内置浏览器中,然后将默认隐藏的提示层显示出来。
案例如下:
一、遮罩提示:
二、微信跳转:微信自动跳转手机默认浏览器打开下载链接
安卓展示:直接跳转浏览器下载APK
苹果展示:直接跳转打开苹果商店
部分关键代码
第一步:判断微信的UA。
1
2
3
var ua = navigator.userAgent;
var isWeixin = !!/MicroMessenger/i.test(ua);
第二步:引入默认隐藏层。
1
2
3
4
5
6
7
8
9
10
11
<
a
href="http://caibaojian.com/test.apk" id="JdownApp">点击下载APP</
a
>
<
a
href="http://caibaojian.com/test.apk" id="JdownApp2" class="btn-warn">点击下载APP2</
a
>
<
div
class="wxtip" id="JweixinTip">
<
span
class="wxtip-icon"></
span
>
<
p
class="wxtip-txt">点击右上角<
br
/>选择在浏览器中打开</
p
>
</
div
>
第三步:添加css样式
1
2
3
4
5
.wxtip{background: rgba(0,0,0,0.8); text-align: center; position: fixed; left:0; top: 0; width: 100%; height: 100%; z-index: 998; display: none;}
.wxtip-icon{width: 52px; height: 67px; background: url(weixin-tip.png) no-repeat; display: block; position: absolute; right: 20px; top: 20px;}
.wxtip-txt{margin-top: 107px; color: #fff; font-size: 16px; line-height: 1.5;}
第四步:点击按钮显示隐藏层,点击隐藏层关闭,总的js代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function
weixinTip(ele){
var
ua = navigator.userAgent;
var
isWeixin = !!/MicroMessenger/i.test(ua);
if
(isWeixin){
ele.onclick=
function
(e){
window.event? window.event.returnValue =
false
: e.preventDefault();
document.getElementById(
'JweixinTip'
).style.display=
'block'
;
}
document.getElementById(
'JweixinTip'
).onclick=
function
(){
this
.style.display=
'none'
;
}
}
}
var
btn1 = document.getElementById(
'JdownApp'
);
//下载一
weixinTip(btn1);
var
btn2 = document.getElementById(
'JdownApp2'
);
//下载二
weixinTip(btn2);
以上代码,你再也不用担心有多个按钮了。