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


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 相关文章推荐
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 Javascript
JavaScript中把数字转换为字符串的程序代码
Jun 19 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
Feb 23 Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 Javascript
Angularjs注入拦截器实现Loading效果
Dec 28 Javascript
jQuery下拉框的简单应用
Jun 24 Javascript
JavaScript跨域调用基于JSON的RESTful API
Jul 09 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
weex slider实现滑动底部导航功能
Aug 28 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 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的4种常见运行方式
2015/03/20 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
javascript cookies操作集合
2010/04/12 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
演讲稿祖国在我心中
2014/05/04 职场文书
保护环境倡议书500字
2014/05/19 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
给老师的感谢信
2015/01/20 职场文书
工作自我推荐信范文
2015/03/25 职场文书
被委托人身份证明
2015/08/07 职场文书
关于车尾的标语大全
2015/08/11 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
python实现自动化群控的步骤
2021/04/11 Python
react 项目中引入图片的几种方式
2021/06/02 Javascript