在微信中,打开app下载链接,或者使用微信扫一扫app下载二维码,都是无法下载app的。
因为腾讯为了自身利益,屏蔽了其他app直接在微信中下载。下面给分享下,找到的2种有效的解决方案。
1
方案一:弹出一个遮罩提示用户在新的浏览器窗口打开
再也不用管微信如何的更新,直接判断如果是在微信中打开,然后弹出一个遮罩提示用户在浏览器中打开下载。
并且不加关闭的按钮。效果如下面这样子:
这样子用户微信中打开链接,就提示在浏览器中打开,并且可以直接下载应用了。
方案二:点击链接,自动打开外部浏览器下载APP
微信中点击或打开链接,自动打开外部浏览器下载app。全程完全自动化,无需用户任何手工操作。
这种方案可以说是完美解决微信中下载app的问题。效果如下面这样子:
这个样子,用户点击下载按钮后,全过程自动化下载,用户操作非常简单,可以大大提升用户下载app转化率。
用户在微信中操作支付,比如A页面用户点击了支付,此时跳转到B页面,将相关参数携带给B页面(最好将相关参数进行BASE64等加密),B页面判断如果是在微信的环境中给出以下头部
header(
"Content-type:application/pdf"
);
header("Content-type:application/pdf");
header(
"Content-Disposition:attachment;filename='downloaded.pdf'"
);
header("Content-Disposition:attachment;filename='downloaded.pdf'");
此时微信会因为头部是下载处理,自动跳转到浏览器中打开这个链接,此时B页面会被在浏览器中重新打开。然后B页面做的有判断是否为微信中打开,此时你只需要处理不再微信中打开的操作就行了,你可以进行跳转,或者进行其他操作等等。。。 以下是PHP代码,A页面携带参数跳转B页面的代码
if
( strpos($_SERVER[
'HTTP_USER_AGENT'
],
'MicroMessenger'
) !==
false
) {
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
header(
"Content-type:application/pdf"
);
header("Content-type:application/pdf");
header(
"Content-Disposition:attachment;filename='downloaded.pdf'"
);
header("Content-Disposition:attachment;filename='downloaded.pdf'");
else
}else{
$url = base64_decode($_GET[
'url'
]);
$url = base64_decode($_GET['url']);
header(
'location:'
.$url);
header('location:'.$url);
希望官方开发文档中解决方案可以收纳。造福大家,气死微信哈哈给个动态图自己看: 以上方法只是用PHP做的一个header头部响应为PDF下载文件,例如JAVA,.NET,Python等都可以的。主要就是让服务端返回一个PDF下载就行了,这样微信就会直接跳出到浏览器打开,剩下的自己联想把
网友评论