用微信小程序怎么实现条形码和二维码的制作呢?

来源:下载之家 作者:zhangqian

WPS Office

WPS Office

版本:免费完整版 v10.1.0.7566
大小:70.66MB
分类: 办公软件
查看详情

导读: 现在条形码和二维码应用广泛,那么用微信小程序怎么实现条形码和二维码的制作呢?以下就是小编带来的教程,感兴趣的小伙伴就跟小编一起来了解一下吧。

  现在条形码和二维码应用广泛,那么用微信小程序怎么实现条形码和二维码的制作呢?以下就是小编带来的教程,感兴趣的小伙伴就跟小编一起来了解一下吧。

  开发前准备

  本文首先假定开发者已经粗略阅读过微信小程序的开发文档,所以注册小程序的流程就不介绍了。不过需要注意,小程序现在只允许企业用户注册,所以认证需要企业营业执照复印件和加盖公章的小程序申请公函。如果是选择对公账户认证,则不需要公函。另外,如果需要使用微信支付接口,则需要另外进行一次微信认证,这个就必须使用300块的方式了,感觉靠给微信认证的公司就挣钱不少。。。

  开发工具介绍

  我使用的开发工具就是微信官方提供的IDE,现在也有了很多第三方的IDE或者插件,但是用起来感觉整合度不如官方版,索性不换了。新建项目需要输入注册小程序时获取的AppId。需要注意的是设置页面:其中有一项是开发环境不校验请求域名以及TLS版本。这一项需要勾选上,因为微信只支持HTTPS的协议而且必须是指定域名,这让开发者使用localhost调试变的很麻烦,勾选此项之后就没有这种限制了。但只有在开发环境才可以。

  功能设计

  如图:

用微信小程序怎么实现条形码和二维码的制作呢?

  功能设计图

用微信小程序怎么实现条形码和二维码的制作呢?

  会员卡

用微信小程序怎么实现条形码和二维码的制作呢?

  个人信息

用微信小程序怎么实现条形码和二维码的制作呢?

  注册

  开发过程

  首先是目录结构:

用微信小程序怎么实现条形码和二维码的制作呢?

  目录结构

  pages:用于存放会员卡、个人信息和注册三个页面的文件

  utils:放置公共js文件

  app.js

  var request = require('utils/requestfun.js');//封装了ajax的实现

  App({

  data: { //app.js中使用的data

  },

  globalData: { //全局使用的data

  REQUEST_BASE_URL: '',//后台服务器域名

  GET_VIP_BR_CODE: '',//请求条形码接口

  GET_VIP_QR_CODE: '',//请求二维码接口

  channelid: '',

  vipcode: null,//初始设置会员卡号为null

  wxuserkey: ''//后台返回的解密后信息

  },

  //获取会员信息

  getVipInfo: function (cb) {

  var that = this;

  if (!that.globalData.vipcode) {

  //调用登录接口

  wx.login({//微信提供的login接口,可以获得openid及code

  success: function (res) {

  var code = res.code;

  wx.getUserInfo({//微信提供的接口,使用code获取用户信息,包括unionid

  success: function (res) {

  var params = {

  'channelid': that.globalData.channelid,

  'code': code,

  'res': res

  }

  request.mnsrequest(that.globalData.REQUEST_BASE_URL + 'weixin/miniappgetvipinfo.action', params, function (mnsres) {//请求项目后台服务器返回会员信息

  if (mnsres.data) {

  if (mnsres.data.returndata.isregistered) {

  var vipcode = mnsres.data.returndata.vipcode;

  that.globalData.vipcode = vipcode;

  typeof cb == "function" && cb();

  } else {

  that.globalData.wxuserkey = mnsres.data.returndata.wxuserkey;//此处为后台返回的会员微信信息key,通过此key与后台通信

  wx.redirectTo({//微信提供的路由接口,重定向。

  url: '/pages/reg/reg'

  })

  }

  } else {

  return mnsres.errMsg;

  }

  })

  }

  })

  }

  })

  } else {

  typeof cb == "function" && cb();

  }

  }

  })

  这里强调几点:

  微信路由接口有三个,分别是wx.redirectTo、wx.navigateTo和wx.switchTab

  wx.navigateTo全局最多调用5次

  如果某页面设置为tab页,则只支持wx.switchTab,不支持其他两种路由方式访问

  app.json

  app.json是全局配置文件。

  {

  "pages": [//所有页面都需要在这里注册后才能使用

  "pages/index/index",

  "pages/vipinfo/vipinfo",

  "pages/reg/reg"

  ],

  "window": {//设置小程序窗体样式及显示文字

  "backgroundTextStyle": "light",

  "navigationBarBackgroundColor": "#fff",

  "navigationBarTitleText": "会员卡",

  "navigationBarTextStyle": "black"

  },

  "tabBar": {//设置Tab页样式

  "list": [//设置Tab页列表,最大支持5个

  {

  "pagePath": "pages/index/index",

  "text": "会员卡",

  "iconPath": "pages/img/vip.png",

  "selectedIconPath": "pages/img/vip2.png"

  },

  {

  "pagePath": "pages/vipinfo/vipinfo",

  "text": "个人信息",

  "iconPath": "pages/img/info.png",

  "selectedIconPath": "pages/img/info2.png"

  }

  ],

  "borderStyle":"white"

  },

  "networkTimeout": {

  "request": 10000,

  "downloadFile": 10000

  },

  "debug": true

  }

  app.wxss

  app.wxss控制全局样式。

  /**app.wxss**/

  page{//需要设置page高度,才能正常让空间高度显示为100%

  height: 100%;

  }

  .container {

  font-family: 'Franklin Gothic Medium', 'Arial Narrow';

  /*border: 1px solid black;*/

  background-color: #48c23d;

  width: 100%;

  height: 100%;

  display: flex;//小程序推荐使用flex布局

  flex-direction: column;

  align-items: center;

  justify-content: flex-end;

  box-sizing: border-box;

  overflow: hidden;

  padding: 50rpx;

  }

  .reg_container{

  font-family: 'Franklin Gothic Medium', 'Arial Narrow';

  width: 100%;

  height: 100%;

  display: flex;

  flex-direction: column;

  align-items: flex-start;

  justify-content: flex-start;

  box-sizing: border-box;

  overflow: hidden;

  padding: 50rpx;

  }

  .info_container{

  font-family: 'Franklin Gothic Medium', 'Arial Narrow';

  font-size: 30rpx;

  width: 100%;

  height: 100%;

  display: flex;

  flex-direction: column;

  align-items: flex-start;

  justify-content: flex-start;

  box-sizing: border-box;

  overflow: hidden;

  padding: 50rpx;//小程序推荐的自适应长度单位

  }

  reg.wxml

  wxml为微信创造的xml标记语言。

  <view class="reg_container">//view可以简单理解为html中的块状元素

  <view class="phone_container">

  手机号:

  <input class='phone' type="number" placeholder="请输入手机号" maxlength="11" focus bindinput="bindKeyInput" />//使用bind绑定事件

  </view>

  <view class="vertify_container">

  验证码:

  <input class='vertify' type="number" placeholder="请输入验证码" maxlength="4" bindinput="bindKeyInput2" />

  <button class="vertify_btn" size="default" type="primary" bindtap="getVertifycode" disabled='{{vertical.disabled}}'>{{vertical.value}}</button>//使用双大括号语法进行数据绑定,但只支持单向绑定,若要实现双向绑定,需要借助事件

  </view>

  <view class="regbtn_container">

  <button class="reg_btn" size="default" type="primary" bindtap="regist">注册</button>

  </view>

  </view>

  提交审核

  按照官方操作说明进行即可。参照下图:

用微信小程序怎么实现条形码和二维码的制作呢?

  提交审核

  总结

  有其他MVVM开发经验的话,小程序上手很快,可以将其理解为简化版VUE.js

  微信数据解密是难点,必须严格按照微信提供的解密流程,java需要引入新jar包

  设定页面高度时,必须设置page的height为100%,否则高度设置无效

  重定向路径写法:“/pages/index/index”

  若同一页面中两个input都设置了“focus”属性,则会导致小程序闪退

  在tab中注册的页面,不可使用重定向及新页面接口,只可使用tab切换

  微信规定,整体代码大小不得超过1M,所以图片需使用云存储链接获取

  用微信小程序怎么实现条形码和二维码的制作的全部内容就是这些,大家看懂了吗?