zoukankan      html  css  js  c++  java
  • 微信内置浏览器不支持下载APK文件

    今天做项目,遇到在微信公众号里面打开一个页面,然后页面上有需要下载apk安装包的功能,pc网页,手机浏览器都调试没问题了,然后放到微信里面就不行咯,打开之后就是空白的,也没有任何提示,查资料了解到:因为腾讯为了自身利益,屏蔽了其他app直接在微信中下载,真不真实不知道。。。。

    然后找了一些解决方案,以下这个方案,亲自测试是可以正常使用的,文件使用php编写

      1 <?php
      2 if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
      3     //其实没太弄明白,为什么要加这2句,就可以从微信内置浏览器跳出去到手机浏览器 2021-03-30
      4     header("Content-Disposition: attachment; filename="load.doc"");
      5     header("Content-Type: application/vnd.ms-word;charset=utf-8");
      6 }
      7 $data = isset($_GET['data']) && $_GET['data'] ? $_GET['data'] : '';
      8 $name = isset($_GET['name']) && $_GET['name'] ? $_GET['name'] : '';
      9 $downloadUrl = $data ? base64_decode($data) : '';
     10 ?>
     11 <!DOCTYPE html>
     12 <html>
     13 <head>
     14     <meta charset="UTF-8">
     15     <title><?=$name?></title>
     16     <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
     17     <meta content="yes" name="apple-mobile-web-app-capable"/>
     18     <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
     19     <meta name="format-detection" content="telephone=no"/>
     20     <style>
     21         body,html{100%;height:100%}
     22         *{margin:0;padding:0}
     23         body{background-color:#fff}
     24         .top-bar-guidance{font-size:15px;color:#fff;height:40%;line-height:1.8;padding-left:20px;padding-top:20px;background:url(/img/wx_right_browser.png) center top/contain no-repeat}
     25         .top-bar-guidance .icon-safari{25px;height:25px;vertical-align:middle;margin:0 .2em}
     26         .app-download-btn{display:block;214px;height:40px;line-height:40px;margin:18px auto 0 auto;text-align:center;font-size:18px;color:#2466f4;border-radius:20px;border:.5px #2466f4 solid;text-decoration:none}
     27     </style>
     28 </head>
     29 <body>
     30 <div class="top-bar-guidance">
     31     <p>
     32         点击右上角选择在浏览器打开
     33     </p>
     34     <p>
     35         可以继续下载哦~
     36     </p>
     37 </div>
     38 
     39 <a class="app-download-btn" id="BtnClick" href="javascript:;"> 点此下载 </a>
     40 
     41 <script>
     42 
     43     var url = '<?=$downloadUrl?>';//更改需要跳转的地址
     44 
     45     document.querySelector('body').addEventListener('touchmove', function (event) {
     46 
     47         event.preventDefault();
     48 
     49     });
     50 
     51     window.mobileUtil = (function(win, doc) {
     52 
     53         var UA = navigator.userAgent,
     54 
     55             isAndroid = /android|adr/gi.test(UA),
     56 
     57             isIOS = /iphone|ipod|ipad/gi.test(UA) && !isAndroid,
     58 
     59             isBlackBerry = /BlackBerry/i.test(UA),
     60 
     61             isWindowPhone = /IEMobile/i.test(UA),
     62 
     63             isMobile = isAndroid || isIOS || isBlackBerry || isWindowPhone;
     64 
     65         return {
     66 
     67             isAndroid: isAndroid,
     68 
     69             isIOS: isIOS,
     70 
     71             isMobile: isMobile,
     72 
     73             isWeixin: /MicroMessenger/gi.test(UA),
     74 
     75             isQQ: /QQ/gi.test(UA)
     76 
     77         };
     78 
     79     })(window, document);
     80 
     81     if(mobileUtil.isWeixin){
     82 
     83         if(mobileUtil.isIOS){
     84 
     85             url = "https://t.asczwa.com/taobao?backurl=" + encodeURIComponent(url);
     86 
     87             document.getElementById('BtnClick').href=url;
     88 
     89         }else if(mobileUtil.isAndroid){
     90 
     91             document.getElementById('BtnClick').href=url;
     92 
     93             var iframe = document.createElement("iframe");
     94 
     95             iframe.style.display = "none";
     96 
     97             iframe.src = url;
     98 
     99             document.body.appendChild(iframe);
    100 
    101         }
    102 
    103     }else{
    104 
    105         document.getElementById('BtnClick').href=url;
    106 
    107         window.location.replace(url);
    108 
    109     }
    110 
    111 
    112     </script>
    113 
    114 </body>
    115 
    116 </html>

    但是最开始那2句代码的原理还不是特别清楚,欢迎大家借鉴和指点!

  • 相关阅读:
    蚂蚁问题
    LinuxC安装gcc
    怎样在VC里面使用graphics.h绘图
    C语言之固定格式输出当前时间
    C语言之猜数字游戏
    C语言之新同学年龄
    C语言之ASCII码
    C语言之辗转相除法
    C语言之自守数
    C语言之一数三平方
  • 原文地址:https://www.cnblogs.com/firstlady/p/14597128.html
Copyright © 2011-2022 走看看