golang实现通过扫描二维码的方式来下载文件

原文连接:

http://www.duozhi.online/2023/11/20/golang%e5%ae%9e%e7%8e%b0%e9%80%9a%e8%bf%87%e6%89%ab%e6%8f%8f%e4%ba%8c%e7%bb%b4%e7%a0%81%e7%9a%84%e6%96%b9%e5%bc%8f%e6%9d%a5%e4%b8%8b%e8%bd%bd%e6%96%87%e4%bb%b6/

由于只是把apk的链接地址生成 二维码,在android手机的微信中扫码的时候,会出现一个空白页面,提示十分不友好,所以我这里自己做了一个简单的页面。

1.搭建文件存储服务

minio搭建链接:http://www.duozhi.online/2023/10/19/ubuntu16-04%e5%ae%89%e8%a3%85minio/

2.上传文件

查看的文件链接地址为:http://*.*.*.*:9000/devportal/dynanicAddFragment-release-unsigned.apk

3.写一个简单的前端页面


<html lang="en">
<head>
  <title></title>
  <meta charset="UTF-8">
  <meta name="decorator" content="blank"/>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <style>
    *{ margin:0; padding:0;}
    .mbshei{ position:fixed; width:100%; height:100%; top:0; left:0; background:rgba(0,0,0,0.7); z-index:9999; color:#fff; display:none;}
    .dianjitishi{ padding: 20px; font-size:20px;}
  </style>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

  <script type="text/javascript">

    $(function () {
      //展示
      $('#androidDownload').click(function () {
        ///判断是否是微信
        var ua = navigator.userAgent.toLowerCase();
        if(ua.match(/MicroMessenger/i)=="micromessenger") {
          $(".mbshei").show();
        } else {

          $(".mbshei").hide();
          window.location.href ="http://*.*.*.*:9000/devportal/dynanicAddFragment-release-unsigned.apk";
        }
      });

    });

  </script>
</head>
<body>
<div style="text-align:center; margin-top:8vh">
  <div style="font-size: 25px">app 安装包下载</div>
</div>

<div style=" text-align:center; padding-top:30px;">
  <button id="androidDownload" style="width: 60%; font-size:20px;font-weight: bold; box-shadow: 2px 5px 10px 2px #000">
    下载
  </button>
</div>

<div class="mbshei" id="mb">

  <div class="dianjitishi">
    <label>1.点击右上角的  ...  </label>&nbsp;&nbsp;
  </div>
  <div class="dianjitishi">
    <label>2.选择浏览器打开</label>&nbsp;&nbsp;
  </div>
</div>
</body>
</html>

把html放到nginx中,让用户能访问

server {
        listen       7757;
        server_name  localhost;
        location / {
            output_buffers 4 256k;
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /appDownload/ {
              alias /root/appDownload/;
        }

    }

访问该页面

3.golang把上面网址生成二维码

package main

import "github.com/skip2/go-qrcode"

func main() {
err := qrcode.WriteFile("http://*****:7757/appDownload/index.html", qrcode.Medium, 256, "qr.png")
if err != nil {
panic(err)
}

}

点开qr.png即是二维码图片。

浏览器打开,点击下载会直接下载内容

微信扫描打开

点击下载后

点击右上角的… 之后,重新进入下载页面

点击下载即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值