返回顶部
首页 > 资讯 > 前端开发 > node.js >HTML5如何实现打开手机扫码功能
  • 701
分享到

HTML5如何实现打开手机扫码功能

2024-04-02 19:04:59 701人浏览 独家记忆
摘要

这篇文章主要介绍HTML5如何实现打开手机扫码功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.解决的问题:1.能够在微博客户端呼起摄像头扫描二维码并且解析;2.能够在原生浏览器

这篇文章主要介绍HTML5如何实现打开手机扫码功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.解决的问题:

1.能够在微博客户端呼起摄像头扫描二维码并且解析;

2.能够在原生浏览器和微信客户端中扫描二维码并且解析;

2.优点:

WEB端或者是 h6端可以直接完成扫码的工作;

3.缺点:

图片不清晰很容易解析失败(拍照扫描图片需要镜头离二维码的距离很近),相对于 native 呼起的摄像头解析会有1-2秒的延时。

说明:

插件需要配合zepto.js 或者 Jquery.js使用

使用方法:

1.在需要使用的页面按照下面顺序引入lib目录下的 js 文件

<script src="lib/zepto.js"></script>
    <script src="lib/qrcode.lib.min.js"></script>
    <script src="lib/qrcode.js"></script>

2.自定义按钮的 html 样式

为自定义的按钮添加自定义属性,属性名称为node-type

为 input 按钮添加自定义的属性, 属性名称为node-type

因为该插件需要使用<input type="file" /> ,该 html 结构在网页上面是有固定的显示样式,为了能够自定义按钮样式,我们可以按照下面的示例代码结构嵌套代码

 <div>
        <div class="qr-btn" node-type="qr-btn">扫描二维码1
            <input node-type="jsbridge" type="file" name="myPhoto" value="扫描二维码1" />
        </div>
    </div>

然后设置 input 按钮的 CSS 隐藏按钮,比如我使用的是属性选择器

input[node-type=jsbridge]{
    display:none;
}

这里我们只需要按照自己的需要定义class="qr-btn"的样式即可。

3.在页面上初始化 Qrcode 对象

 //初始化扫描二维码按钮,传入自定义的 node-type 属性
    $(function() {
        Qrcode.init($('[node-type=qr-btn]'));
    });

主要代码解析

(function($) {
    var Qrcode = function(tempBtn) {
        var _this_ = this;
        var isWeiboWebView = /__weibo__/.test(navigator.userAgent);
        if (isWeiboWebView) {
            if (window.WeiboJSBridge) {
                _this_.bridgeReady(tempBtn);
            } else {
                document.addEventListener('WeiboJSBridgeReady', function() {
                    _this_.bridgeReady(tempBtn);
                });
            }
        } else {
            _this_.nativeReady(tempBtn);
        }
    };
    Qrcode.prototype = {
        nativeReady: function(tempBtn) {
            $('[node-type=jsbridge]',tempBtn).on('click',function(e){
                e.stopPropagation();
            });
            $(tempBtn).bind('click',function(e){
                $(this).find('input[node-type=jsbridge]').trigger('click');
            });
            $(tempBtn).bind('change', this.getImgFile);
        },
        bridgeReady: function(tempBtn) {
            $(tempBtn).bind('click', this.weiBoBridge);
        },
        weiBoBridge: function() {
            window.WeiboJSBridge.invoke('scanQRCode', null, function(params) {
                //得到扫码的结果
                $('.result-qrcode').append(params.result + '<br/>');
            });
        },
        getImgFile: function() {
            var _this_ = this;
            var inputDom = $(this).find('input[node-type=jsbridge]');
            var imgFile = inputDom[0].files;
            var oFile = imgFile[0];
            var oFReader = new FileReader();
            var rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;
            if (imgFile.length === 0) {
                return;
            }
            if (!rFilter.test(oFile.type)) {
                alert("选择正确的图片格式!");
                return;
            }
            oFReader.onload = function(oFREvent) {
                qrcode.decode(oFREvent.target.result);
                qrcode.callback = function(data) {
                    //得到扫码的结果
                    $('.result-qrcode').append(data + '<br/>');
                };
            };
            oFReader.readAsDataURL(oFile);
        },
        destory: function() {
            $(tempBtn).off('click');
        }
    };
    Qrcode.init = function(tempBtn) {
        var _this_ = this;
        tempBtn.each(function() {
            new _this_($(this));
        });
    };
    window.Qrcode = Qrcode;
})(window.Zepto ? Zepto : jQuery);

以上是“HTML5如何实现打开手机扫码功能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: HTML5如何实现打开手机扫码功能

本文链接: https://lsjlt.com/news/72368.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTML5如何实现打开手机扫码功能
    这篇文章主要介绍HTML5如何实现打开手机扫码功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.解决的问题:1.能够在微博客户端呼起摄像头扫描二维码并且解析;2.能够在原生浏览器...
    99+
    2024-04-02
  • 如何使用HTML5实现二维码扫描功能
    本篇内容介绍了“如何使用HTML5实现二维码扫描功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2024-04-02
  • Html5+JS如何实现手机摇一摇功能
    本文将为大家详细介绍“Html5+JS如何实现手机摇一摇功能”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Html5+JS如何实现手机摇一摇功能...
    99+
    2024-04-02
  • Flutter如何实现扫二维码功能
    这篇文章主要为大家展示了“Flutter如何实现扫二维码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flutter如何实现扫二维码功能”这篇文章吧。具体内容如下首先在pubspec.yam...
    99+
    2023-06-29
  • php如何实现扫一扫功能
    这篇文章主要介绍php如何实现扫一扫功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php实现扫一扫功能的方法:1、生成二维码,生成一个唯一标识uuid,并使用redis保存临时信息;2、通过一个长连接维持用户请求...
    99+
    2023-06-22
  • Android实现扫码功能
    本文实例为大家分享了Android实现扫码功能的具体代码,供大家参考,具体内容如下 1、引入 implementation 'com.journeyapps:zxing-and...
    99+
    2024-04-02
  • uni-app实现 app 小程序 手机端H5扫码功能
    首先 扫码这个功能小程序和App都是有现成的方法 但是H5是不行的 我们可以看这样一段代码 扫描{{result}}扫描{{result}} export default { data...
    99+
    2023-09-05
    uni-app 小程序
  • 电脑怎么打开打印机扫描功能
    要使用电脑的打印机扫描功能,您可以按照以下步骤操作:1. 确保您的打印机已连接到电脑并且已安装正确的驱动程序。2. 打开您想要扫描的...
    99+
    2023-09-20
    电脑
  • jQuery如何实现二维码扫描功能
    这篇文章主要介绍了jQuery如何实现二维码扫描功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二维码:利用图形模拟二进制0、1的概念,达...
    99+
    2024-04-02
  • android实现扫码枪功能
    扫码枪扫码效果等同于键盘录入,会回调dispatchKeyEvent键盘按下事件。 开发环境:有线扫码枪,支持二维码 代码 1. 接收数据 @Override ...
    99+
    2024-04-02
  • flutter开发实战-flutter二维码条形码扫一扫功能实现
    flutter开发实战-flutter二维码条形码扫一扫功能实现 flutter开发实战-flutter二维码扫一扫功能实现,要使用到摄像头的原生的功能,使用的是插件:scan 效果图如下 一、扫一...
    99+
    2023-09-02
    flutter 扫一扫 二维码 条形码
  • js如何实现手机发送验证码功能
    这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:代码如下:<!DOCTYPE html&g...
    99+
    2024-04-02
  • Flutter实现扫二维码功能
    本文实例为大家分享了Flutter实现扫二维码功能的具体代码,供大家参考,具体内容如下 首先在pubspec.yaml中添加: dependencies:   qrscan: ^0....
    99+
    2024-04-02
  • 如何通过vue方式实现二维码扫码功能
    这篇文章主要为大家展示了“如何通过vue方式实现二维码扫码功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何通过vue方式实现二维码扫码功能”这篇文章吧。提示这个插件只能在https协议下才...
    99+
    2023-06-25
  • java如何实现打印机的打印功能
    要实现打印机的打印功能,可以使用Java中的打印机相关的API。以下是一个简单的示例代码:```javaimport javax.p...
    99+
    2023-09-01
    java
  • 手机如何开启javascript功能
    手机如何开启javascript功能在当今移动设备越来越普及的时代里,我们的手机已成为我们不可或缺的电子伴侣。使用手机进行网页浏览是很多人日常工作和娱乐的必备环节。然而,有时候我们开启手机中的浏览器,发现网页内容无法正常显示或操作,提示我们...
    99+
    2023-05-14
  • windows惠普打印机扫描功能如何使用
    本篇内容介绍了“windows惠普打印机扫描功能如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!惠普打印机扫描功能使用的方法:首先扫描...
    99+
    2023-07-05
  • Android | 教你如何开发扫二维码功能
    目录前言官网的Demo和Sample代码体验1 开发准备1.1 android studio 安装1.2 在项目级gradle里添加华为mave...
    99+
    2022-06-06
    二维 二维码 Android
  • html5如何实现拍照功能
    这篇文章将为大家详细讲解有关html5如何实现拍照功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、 视频流 HTML5 The Media Capture A...
    99+
    2024-04-02
  • HTML5如何实现录音功能
    这篇文章主要介绍了HTML5如何实现录音功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获取 PCM 数据处理 PCM 数据Float32 转 Int16ArrayBuff...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作