golang

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

由于只是把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即是二维码图片。

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

微信扫描打开

点击下载后

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

点击下载即可

留言

您的邮箱地址不会被公开。 必填项已用 * 标注

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。