HTML5打开手机扫码功能及优缺点_html5教程技巧

这篇文章主要介绍了html5打开手机扫码功能及优缺点的相关html5资料,对html5感兴趣的朋友可以参考下

1.解决的问题:

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

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

2.优点:

立即学习“前端免费学习笔记(深入)”;

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

3.缺点:

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

说明:

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

使用方法:

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

            

登录后复制

2.自定义按钮的 html 样式

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

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

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

 

        

扫描二维码1                    

    

登录后复制

然后设置 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 + '
');            });        },        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 + '
');                };            };            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打开手机扫码功能及优缺点,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHP中文网的支持!

相关推荐:

属性选择器

属性选择器

属性选择器

以上就是HTML5打开手机扫码功能及优缺点_html5教程技巧的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3194573.html

(0)
上一篇 2025年4月1日 02:00:47
下一篇 2025年2月23日 16:48:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • HTML5 Ajax文件上传进度条如何显示

    这篇文章主要介绍了html5 ajax文件上传文件上传是如何显示的,基于原生html5实现,不需要falsh支持,进度可以自定义显示,控制灵活,对html5上传进度条感兴趣的小伙伴们可以参考一下 原本打算使用jquery插件进行异步文件上传…

    编程技术 2025年4月1日
    100
  • HTML5的WEB界面中meta实列详解

    这次给大家带来html5的web界面中meta实列详解,使用html5的web界面中meta的注意事项有哪些,下面就是实战案例,一起来看一下。 注意事项 meta标签是HTML语言HEAD区的一个辅助性标签。 meta常用于定义页面的说明,…

    编程技术 2025年4月1日
    100
  • h5的定时器怎样实现进度条功能

    这次给大家带来h5的定时器怎样实现定时器功能,h5的定时器实现进度条功能的定时器有哪些,下面就是实战案例,一起来看一下。 在requestAnimationFrame出现之前,我们一般都用setTimeout和setInterval,那么h…

    编程技术 2025年4月1日
    100
  • 怎样用H5预览PDF格式的文档

    这次给大家带来怎样用h5预览pdf格式的文档,h5预览pdf格式文档的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 PDF.js is a Portable 注意事项 Format (PDF) viewer that is bui…

    编程技术 2025年4月1日
    100
  • H5的拖放应该如何实现

    这次给大家带来h5的拖放应该如何实现,实现h5拖放效果应该的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 先点击一…

    编程技术 2025年4月1日
    100
  • h5怎样通过canvas来实现滚动弹幕功能

    这次给大家带来h5怎样通过canvas来实现滚动弹幕功能,通过canvas实现滚动弹幕功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在着手开发弹幕视频网站,通过html5中的canvas实现了弹幕的功能。 那么闲言碎语不要讲,…

    编程技术 2025年4月1日
    100
  • 用H5和C3实现简单的时钟效果

    这次给大家带来用h5和c3实现简单的时钟效果,用h5和c3实现简单的时钟效果的注意事项有哪些,下面就是实战案例,一起来看一下。 目的: 利用html5,css实现钟摆效果 知识点: 1) 利用注意事项/left/top和calc()实现元素…

    编程技术 2025年4月1日
    100
  • h5如何实现记住密码功能

    这次给大家带来h5如何实现记住密码功能,h5实现记住密码功能的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML5 提供了两种在客户端存储数据的新方法: localStorage – 没有时间限制的数据存储 sessio…

    编程技术 2025年4月1日
    100
  • H5的本地存储和本地数据库详细介绍

    这次给大家带来h5的本地存储和本地数据库详细介绍,使用h5的本地存储和本地数据库的本地数据库有哪些,下面就是实战案例,一起来看一下。 本地存储 1.1 本地存储由来的背景 由于HTML4时代Cookie的大小、格式、存储数据格式等限制,网站…

    编程技术 2025年4月1日
    100
  • 怎样用h5的sse服务器发送EventSource事件

    这次给大家带来怎样用h5的sse服务器发送eventsource事件,用h5的sse服务器发送eventsource事件的事件有哪些,下面就是实战案例,一起来看一下。 前言 我前面文章讲过数据大屏,里面的数据时时事件。还有时时更新的股票数据…

    编程技术 2025年4月1日
    100

发表回复

登录后才能评论