文章目录

  • 二维码基本原理
  • 二级码生成
    • 在线二维码生成
    • java代码生成二维码
    • 前端二维码生成
  • app扫码下载

二维码基本原理

参考:
https://cli.im/help/48235

二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。二维条码的种类很多,不同的机构开发出的二维条码具有不同的结构以及编写、读取方法。

堆叠式/行排式二维条码,如,Code 16K、Code 49、PDF417等。
矩阵式二维码,最流行莫过于QR CODE,二维码的名称是相对与一维码来说的,比如以前的条形码就是一个“一维码”。它的优点有:二维码存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高等。

二维码扫描器是根据条码的颜色反差 (Color Contrast) 而识别,因此以黑白颜色配搭效果最好。二维码的反差色不明显会出现扫描不出来的情况。白色的二维码,可以换成黑色的底色。二维码扫描器是根据条码的颜色反差 (Color Contrast) 而识别,所以以黑白颜色配搭的效果是最好的。
颜色使用须知如下:

  • 条纹使用深色,空白位用浅色。
  • 条纹使用冷色,例如黑色、蓝色、绿色、靛蓝色。
  • 空白位使用暖色,例如白色、红色、橙色、黄色。
  • 透明的包装,底色要明显反差色。

二级码生成

在线二维码生成

(草料二维码):
https://cli.im/

java代码生成二维码

参考:https://www.cnblogs.com/huanzi-qch/p/10097791.html

ZXing(google开源),一个支持在图像中解码和生成条形码(如二维码、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的库。ZXing(“zebra crossing”)是一个开源的、多格式的、用Java实现的一维/二维条码图像处理库,具有到其他语言的端口。

  • GitHub地址,猛戳:https://github.com/zxing/zxing
  • API文档,猛戳:https://zxing.github.io/zxing/apidocs/index.html
  • 介绍文档,猛戳:https://zxing.github.io/zxing/

前端二维码生成

后端生成我们可以用ZXing框架,那么前端js又应该如何生成、识别二维码呢?QRCode.js,QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。菜鸟教程,猛戳:http://www.runoob.com/w3cnote/javascript-qrcodejs-library.html

但是qrcode默认不支持自定义logo,怎么办呢?两种方法:

1、创建一个img标签,调整样式,让logo在二维码区域上居中显示

2、创建一个canvas画布,将二维码跟logo重新绘制,让logo在二维码区域上居中显示

app扫码下载

支付宝等其它app扫描,可以使用浏览器打开直接下载。微信扫码禁用的下载功能,可以使用旋风微跳,生成可以在微信可下载的二维码:
http://www.zjychina.cn/

但是旋风微跳类服务是收费的。

可以采用间接的方法支持微信扫描下载。
参考:https://www.jianshu.com/p/f6a6406e023f

核心代码如下:

goDownload();// 去下载function goDownload() {var u = navigator.userAgent, app = navigator.appVersion;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);// 是安卓浏览器if (isAndroid) {window.location.href = 'http://xxxxxxx.cn/release/xxxx-release.apk'; // 跳安卓端下载地址}// 是iOS浏览器if (isIOS) {window.location.href = 'https://itunes.apple.com/cn/app/xxxxxxx/id1124348115?mt=8'; // 跳AppStore下载地址}// 是微信内部webViewif (is_weixn()) {alert("请点击右上角按钮, 点击使用浏览器打开");}// 是PC端if (IsPC()) {window.location.href = 'http://www.xxxxxxx.cn/index.html';  // 公司主页}}// 是微信浏览器function is_weixn(){var ua = navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i)=="micromessenger") {return true;} else {return false;}}function IsPC() {var userAgentInfo = navigator.userAgent;var Agents = ["Android", "iPhone","SymbianOS", "Windows Phone","iPad", "iPod"];var flag = true;for (var v = 0; v < Agents.length; v++) {if (userAgentInfo.indexOf(Agents[v]) > 0) {flag = false;break;}}return flag;}

臭味相投的朋友们,我在这里:
猿in小站:http://www.yuanin.net
csdn博客:https://blog.csdn.net/jiabeis
简书:https://www.jianshu.com/u/4cb7d664ec4b
微信免费订阅号“猿in”

二维码和app扫码下载相关推荐

  1. 网页二维码,App 扫码登录实现原理

    需求介绍 首先,介绍下什么是扫码登录.现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件.而开发这些app的企业,都有他们相对应的网站.为了让用户在使用他们的网站时,登录更加方便和安全.这些企 ...

  2. 架构:网页二维码,App 扫码登录实现原理

    需求介绍 首先,介绍下什么是扫码登录.现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件.而开发这些app的企业,都有他们相对应的网站.为了让用户在使用他们的网站时,登录更加方便和安全.这些企 ...

  3. vue前端生成二维码,实现扫码下载功能

    vue前端生成二维码,实现扫码下载功能 首先需要安装一个插件 npm install --save qrcodejs2 然后在需要的页面引入插件,最后使用 <template><di ...

  4. vue qrcodejs2生成二维码实现手机APP扫码进行web网页登录

    在vue中使用 qrcodejs2 1.安装 npm install  qrcodejs2 --save 2.引入 import QRCode from "qrcodejs2" 3 ...

  5. wechat-0050,微信公众号,带参数的二维码获取与扫码事件推送

    demo:https://github.com/wenrongyao/wechat-demo 摘要:这篇帖子讲述如何获取带参数的二维码,以及扫码带参数的二维码后的事件接收. 微信开发者文档:https ...

  6. Android二维码名片生成扫码识别

    功能描述: 填入联系人信息,动态生成二维码名片,长按二维码保存,打开扫码识别内容.app实现了在android6.0或以上动态权限申请功能,适合新手研究.搭建方法请看入门教程菜单中的androidst ...

  7. 微信生成带参数的二维码,合成海报,扫码后推送小程序?

    微信服务号渠道二维码功能,支持生成带参数二维码,合成海报二维码,微信扫码后推送内容:结合微号帮平台48小时信息推送,推送微信小程序. 带参二维码 海报二维码 微信扫码后回复 48小时信息推送 在微号帮 ...

  8. uni-app二维码、条形码扫码自定义

    uni-app二维码.条形码扫码自定义 - DCloud问答 https://github.com/xiaowang1314/uniapp-plugin-collections/blob/master ...

  9. 一人一本,一公务用车线上申请派车APP分时租赁APP扫码开车APP (二)

    前一篇文章介绍了公务用车申请派车APP分时租赁APP扫码开车APP的功能骨架:由于功能比较多,后面陆续分不同支线分篇介绍:市场上这样的软件很多,不同公司开发的公务用车申请派车软件管理平台的功能大都差不 ...

最新文章

  1. Ubuntu 10.10系统安装手记
  2. 二、创作网站 (三) Creating custom content types
  3. (29)PDE_PTE属性(PWT/PCD位)
  4. 第一章 计算机语言分类
  5. 牛客网 【每日一题】5月28日题目精讲 Protecting the Flowers
  6. 347.前K个高频元素(力扣leetcode) 博主可答疑该问题
  7. 实践:VB创建Com组件 在Asp以及.Net中调用
  8. oracle中数据泵只导出索引,oracle expdp/impdp exclude=STATISTICS
  9. IIC总线协议详解与总结
  10. 使用x64编译fastdb报错
  11. Elasticseach api keys are not enabled
  12. 日程安排(多重继承+重载)
  13. 简述关于ASP.NET MVC与.NET CORE 的区别
  14. 一篇个人原厂的非主流火星文
  15. 迟来的2021年终总结,2022已开始,Good luck every one! No pain No gain!
  16. Gitee码云仓库操作步骤---忘了就来看看
  17. ROS小车IMU、角速度、线速度等参数校验
  18. 案例 | 群硕助力凯德打造智慧楼宇,引领地产领域运营创新之路
  19. 网页的linke rel=icon详解 favicon深究
  20. 我的世界服务器娘怎么修改配置,转【教学】Pixelmon配置文件修改指南

热门文章

  1. 码农翻身之我是一个线程 --- 读书笔记
  2. SSD_装了ssd后,右下角的那个安全删除硬件的标志要怎么去掉?
  3. CSS浮动(涉及到清除浮动)及易忽略的点
  4. 生物识别身份验证:技术的现状和发展趋势
  5. python根据坐标画点并标记_python-如何使用colormap为matplotlib散点图中的特定点设置标记类型...
  6. 计算机图形学流体仿真mac网格,正交网格下不可压缩流体的图形学模拟
  7. HCIP第十六天(VLAN IF接口,STP生成树协议,BPDU的配置)
  8. [ HIT - CSAPP ] 哈尔滨工业大学 - 计算机系统 - 期末大作业“Hello‘s P2P’”
  9. 机器人无限火力无限e符文_无限火力快乐玩法:无限击飞机器人
  10. html做手机锁屏,手机个性锁屏怎么做?教你如何制作DIY手机锁屏