微信小程序自定义扫码功能界面的实现代码


Posted in Javascript onJuly 02, 2020

小程序的一个扫码页面,扫码界面一直开着,同时可以处理其他功能,如下:

微信小程序自定义扫码功能界面的实现代码

由于直接调用微信的scanCode,无法自定义界面,所以只能使用原生组件camera,完成这个功能,关于扫描框的四个角的图片,就自己画一下吧,中间的移动横线,使用了小程序的动画功能,在原生camera组件上,覆盖需要用到cover-view和cover-image,同时加入了提示音

/**scan.wxss**/
.scan-view {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: #B9BEC4;
  position: fixed;
  align-items: center;
  justify-content: space-around;
}
 
.scan-border {
  width: 94%;
  height: 94%;
  border: 6rpx solid #08FDFE;
  border-radius: 10rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
}
 
.scan-camera {
  width: 500rpx;
  height: 500rpx;
  border-radius: 6rpx;
  margin: 30rpx;
}
 
.cover-corner {
  width: 80rpx;
  height: 80rpx;
  position: absolute;
}
 
.cover-left-top {
  left: 0;
  top: 0;
}
 
.cover-right-top {
  right: 0;
  top: 0;
}
 
.cover-left-bottom {
  left: 0;
  bottom: 0;
}
 
.cover-right-bottom {
  right: 0;
  bottom: 0;
}
 
.scan-animation {
  position: absolute;
  top: -10rpx;
  left: 10rpx;
  width: 480rpx;
  height: 8rpx;
  background-color: #08FDFE;
  border-radius: 50%;
}
<!--scan.wxml-->
<view class="scan-view">
  <view class='scan-border'>
    
    <camera class='scan-camera' mode="scanCode" binderror="cameraError" bindscancode='scancode' frame-size='large'>
      <cover-image class='cover-corner cover-left-top' src='/images/left-top.png'></cover-image>
      <cover-image class='cover-corner cover-right-top' src='/images/right-top.png'></cover-image>
      <cover-image class='cover-corner cover-left-bottom' src='/images/left-bottom.png'></cover-image>
      <cover-image class='cover-corner cover-right-bottom' src='/images/right-bottom.png'></cover-image>
      
      <cover-view class='scan-animation' animation="{{animation}}"></cover-view>
    </camera>
    <!-- 这里可以处理其他内容 -->
  </view>
</view>
// scan.js
// 移动动画
let animation = wx.createAnimation({});
// 提示音
let innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.src = '/images/beep.mp3'
 
Page({
  data: {
    
  },
  onLoad: function () {
    
  },
  onShow(){
    this.donghua()
  },
  donghua(){
    var that = this;
    // 控制向上还是向下移动
    let m = true
    
    setInterval(function () {
      if (m) {
        animation.translateY(250).step({ duration: 3000 })
        m = !m;
      } else {
        animation.translateY(-10).step({ duration: 3000 })
        m = !m;
      }
 
      that.setData({
        animation: animation.export()
      })
    }.bind(this), 3000)
  },
  scancode(e){
    // 提示音
    innerAudioContext.play()
    // 校验扫描结果,并处理
    let res = e.detail.result
  }
})

总结

到此这篇关于微信小程序自定义扫码功能界面的实现代码的文章就介绍到这了,更多相关微信小程序自定义扫码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
JS弹出可拖拽可关闭的div层完整实例
Feb 13 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
jQuery+Pdo编写login登陆界面
Aug 01 Javascript
vue实现百度搜索下拉提示功能实例
Jun 14 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 Javascript
JS字符串和数组如何实现相互转化
Jul 02 #Javascript
Vue父子之间值传递的实例教程
Jul 02 #Javascript
JS出现404错误原理及解决方案
Jul 01 #Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 #Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 #Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 #Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 #Javascript
You might like
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
JavaScript生成简单等差数列
2017/11/28 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python设计模式之代理模式实例
2014/04/26 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
详解Python多线程
2016/11/14 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python安装scipy的步骤解析
2019/09/28 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
Ref与out有什么不同
2012/11/24 面试题
自荐信怎么写好
2013/11/11 职场文书
大专生简历的自我评价
2013/11/26 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
医院保洁服务方案
2014/06/11 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
经典祝酒词大全
2015/08/12 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript