微信无法下载文件如何做提示跳转到浏览器

需求分析

目前的APP基本都支持二维码扫描下载。由于微信现在是主流的聊天软件,90%的用户都是通过微信分享APP的,再从分享的链接下载apk/ios包。故用户通常使用微信打开链接或扫描二维码前往下载页,这是刚需。

在我们做营销活动或推广宣传的时候,容易遇到域名被封,无法跳转app下载等情况。这时需要微信跳转外部浏览器打开页面的功能,对于微信默认可以通过点击右上角的更多符号选择“在浏览器中打开”。但是对于很多用户而言并不知道这样的实现,所以需要在代码中进行相关操作。目前ios只能通过遮罩层来提示用户,对于安卓可以直接跳转外面默认浏览器,下面就分别介绍下这2种方式的实现方式。

实现方式

1. 遮罩提示(多用于ios系统)

遮罩引导法,这种事最简单的方法,一般会用在ios上较多。

1.1 代码如下

?
function isWx(){//判断是否为微信
    var ua = window.navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i) == ‘micromessenger‘){
        return true;
    }
    return false;
};
if(isWx()){//判断浏览器是否微信
    var html=‘<div class="box"><img src="images/head.png"></box>‘
    layer.open({//这里使用了layer的弹窗组件,你也可以自己写
        type: 1,content: html,anim: ‘up‘,
           style: ‘position:fixed; bottom:0; left:0; width: 100%; height: 100%; padding:0; border:none;‘
      });
      return;
}<--有不懂的咨询我的q:3358246772-->

2.2 实现效果

2. 自动跳转浏览器(多用于安卓系统)

2.1 安卓手机的话是可以通过点击链接直接跳转出微信,从而自动打开手机默认的浏览器前往下载页的。代码如下:

?

<?php
function get_ticket($code){
    //初始化
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
    $headers = array();
    $headers[] = ‘User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_1_2 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/15B202 UCBrowser/11.7.7.1031 Mobile  AliApp(TUnionSDK/0.1.20)‘;
    $headers[] = ‘Referer: https://m.mall.qq.com/release/?busid=mxd2&ADTAG=jcp.h5.index.dis‘;
    $headers[] = ‘Content-Type:application/x-www-form-urlencoded; charset=UTF-8‘;

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $content = curl_exec($ch);
    curl_close($ch);
    //$arr = json_decode($content,1);
    //if($arr[‘success‘] == ‘1‘){
    //    $shotCode = $arr[‘shotCode‘];
    //}else{
    //    $shotCode = ‘‘;
    //}
    //preg_match(‘/openlink\":\"(.*?)\"}/‘,$content,$result);
    //$url = $result[1];

    preg_match(‘/href=\"(.*?)#wechat/‘,$content,$result);
    $url = $result[1];
    return $url;
}
    $time = time()-$info[‘ticket_time‘];
    $minute=floor($time/60);
    query_update ( "jump_logs", "count=count+1". " where code=‘" . $code . "‘" );
    if($minute >= 59){
        //如果超过1小时,更新ticket
        $url = get_ticket($w_url_code);
        if($url){
        query_update ( "jump_logs", "ticket_time=‘".time()."‘, ticket=‘" . $url . "‘ where code=‘" . $code . "‘" );
        $ticket_url = $url.‘#‘;
        if(strpos($_SERVER[‘HTTP_USER_AGENT‘], ‘baiduboxapp‘)||strpos($_SERVER[‘HTTP_USER_AGENT‘], ‘baiduboxapp‘)){//安卓百度手机APP
            echo ‘<script>window.location.href = "bdbox://utils?action=sendIntent&minver=7.4&params=%7b%22intent%22%3a%22‘.$url.‘%23wechat_redirect%23wechat_redirect%23Intent%3bend%22%7d";</script>‘;
            }else{
                echo ‘<script>window.location.href = "‘.$ticket_url.‘";</script>‘;
            }
        }
    }else{
        $ticket_url = $info[‘ticket‘].‘#‘;
        if(strpos($_SERVER[‘HTTP_USER_AGENT‘], ‘baiduboxapp‘)||strpos($_SERVER[‘HTTP_USER_AGENT‘], ‘baiduboxapp‘)){//安卓百度手机APP
            echo ‘<script>window.location.href = "bdbox://utils?action=sendIntent&minver=7.4&params=%7b%22intent%22%3a%22‘.$info[‘ticket‘].‘%23wechat_redirect%23wechat_redirect%23Intent%3bend%22%7d";</script>‘;
            }else{
                echo ‘<script>window.location.href = "‘.$ticket_url.‘";</script>‘;
            }
    }
}
?>
<!--有不懂的地方联系我的Q:3358246772--> 

2.2 ios系统则无法实现该逻辑,需要进行判断,判断代码如下:

?
function isDevice(){//判断是android还是ios还是web
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/iPhone\sOS/i) == "iphone os" || ua.match(/iPad/i)=="ipad"){//ios
        return "iOS";
    }
    if(ua.match(/Android/i) == "android") {
        return "Android";
    }
    return "Web";

该下载链接需要给出一下头部:

?
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=‘downloaded.pdf‘");

此时微信会因为头部是下载处理,自动跳转到浏览器中打开这个链接,主要就是让服务端返回一个PDF下载就行了,这样微信就会直接跳出到浏览器打开。

至此,我们在微信中分享下载链接或二维码就不会出现无法自动跳转的问题了,本代码另外还附带了防封接口,可最大程度防止微信封域名的情况。这样我们就可以直接用微信扫描二维码在微信中分享和宣传引流了。如此我们即能够极大的提高自己的APP在微信中的推广转化率。也解决掉了微信中下载链接被屏蔽等问题。充分利用微信的用户群体来宣传引流。

原文地址:https://www.cnblogs.com/xxnhh/p/10327595.html

时间: 2024-08-29 21:01:55

微信无法下载文件如何做提示跳转到浏览器的相关文章

微信无法打开网页或无法打开下载页如何做提示跳转到浏览器打开

大家是不是经常会遇到微信内点击链接或扫描二维码无法打开指定网页的问题?只要你使用微信转发分享,相信你就一定会遇到,那么打不开的原因很简单了,就是被微信拦截了.这个问题我们只需要实现从微信内直接跳出到外部浏览器打开网页链接即可,下面给大家介绍这个功能 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页.功能效果 对网页所属的PHP代码进行相关处理,加入跳转接口即可实现. 功能实现后, 苹果用户即可在微信内直接下载app也可以跳转浏览器下载,安卓用户则自动打开手机浏览器下载app,

IE浏览器下载文件保存时提示:“你没有权限在此位置中保存文件”解决办法

E浏览器下载文件保存时提示 解决办法: 1.Win + R,打开运行命令,输入gpedit.msc,如图所示 2.打开计算机本地组策略编辑器:选择计算机配置-windows设置-安全设置-本地策略-安全选项.在右侧找到“用户账户控制:以管理员批准模式运行所有管理员”,双击打开,如图所示 3.双击打开,设置为“已禁用”,,点击“应用”,“确定”如图所示 4.重启电脑,上述问题就不会再出现. 原文地址:https://www.cnblogs.com/chenshc/p/11827826.html

微信浏览器不支持下载文件或应用解决方案--跳转到默认浏览器打开

在微信的内置浏览器(QQ内置浏览器也一样)里他屏蔽了下载链接,不管是app的下载链接,还是普通文件的链接都屏蔽了,这个问题有两个解决方案. 首先如果你是App下载链接就传到腾讯应用宝,但是这会给应用宝带来流量,如果二次下载折损率很高.其二就是提示引导用户在浏览器打开所以如果你没有将软件上传到应用宝里,或者你的文件不是APP,那么就需要第二种方法了,首先是需要判断用户的浏览器是否为微信内置浏览器,如果是弹出一个图层,提示用户点击右上角的三个点,然后点击在浏览器中打开即可.但是这种用户体验很差.经过

使用commons-net来下载文件(仅做记录)

使用 commons-net-3.6.jar public class ApacheFtpUtil { private Logger log = LoggerFactory.getLogger(ApacheFtpUtil.class); private String host; private String username; private String password; // 控制端口 private int port = 21; // 秒数 private int defaultTime

C#从服务器下载文件到客户端源码

1.在window窗体加个button控件,双击进去 2.进入方法体中,编写方法 private void btnDownload_Click(object sender, EventArgs e)        {            DialogResult rs = MessageBox.Show("是否确定下载文件?", "系统提示", MessageBoxButtons.YesNo,MessageBoxIcon.Information);        

大象跳转教你微信访问链接如何做遮罩提示跳转浏览器打开

微信访问链接如何做遮罩提示跳转浏览器打开 使用微信打开网址链接时,经常会遇到H5网页打不开,无法下载app等情况.那么此时就需要弹出一个遮罩提示用户在手机浏览器窗口打开.如此一来就再也不用管微信如何的更新,直接判断微信的ua,然后弹出一个遮罩提示用户在浏览器中打开下载,并且不加关闭的按钮. 简单的实现方案:1.使用浏览器打开我们需要用到的Elephantjump地址:http://www.go51w.cn/2.复制链接输入进工具框中,点击生成遮罩提示链接和二维码3.微信打开链接或扫描二维码 遮罩

微信自动下载app(安卓跳转默认浏览器 苹果跳转苹果商店App Store)

来源分析 商业分析在微信的使用人数已经高居各通讯APP的榜首的同时,微信成为了我国移动流量最大的平台之一.在次趋势的引导下,很多的商家.体户便抓住了这一机遇,利用微信这个渠道来做产品的推广.以及营销方案宣传.但是好景不长,微信从去年开始就对这一块管制的很严,在微信内分享链接很容易就会被微信拦截屏蔽.要是微信用户收到被屏蔽的链接后,打开提示“ 该链接已停止访问 ”时会导致用户量的大量流失. 方案分析 很多商家爱对此表示脑袋大,想解决但又不知道该如何解决.其实这个问题不难解决,只要在产品的php代码

微信跳转外部浏览器下载app

需求分析 将打包好的apk/ios文件部署到服务器,把下载页面的URL通过二维码编辑器或根据URL代码生成一个二维码,然后通过二维码进行微信推广已经成为很多用户惯用的方式.但微信会对含apk/ios文件的链接进行了屏蔽,所以导致微信扫码打不开下载链接.理想的状态是安卓自动下载,苹果点击左上角按钮前往Safari下载.那么究竟该如何处理才能达到理想的结果呢? 我们知道 js 可以通过 window.navigator.userAgent 来获取浏览器的相关信息,比如:Mozilla/5.0 (Wi

微信中打开第三方网页,怎么解决不打开浏览器就能够下载文件

文章背景 在微信中,打开app下载链接,或者使用微信扫一扫app下载二维码,都是无法下载app的.因为腾讯为了自身利益,屏蔽了其他app直接在微信中下载. 而访问指定网页的链接在微信内分享转发次数多了就会被微信拦截,用户打开提示“已停止访问该网址”.这也是腾讯对第三方网页内容含敏感词或者被人举报次数过多的域名实行的拦截方案. 那么此时如果想解决这个问题的话,必不可少的方案就是能实现微信内跳转到手机浏览器打开网页或者下载APP,下面为大家介绍的一种方案,可实现微信内直接下载APP或跳转浏览器打开网