微信小游戏本地解析二维码

最近公司需要在为微信小游戏内解析一个二维码,从而获取二维码的数据来做相关处理,但是二维码处理方面,小游戏是不支持,为了开发只能自己来解决这个问题。解决方案有两种,第一种是将二维码上传到服务器,后台解析然后返回前台一个结果。第二种,就是在微信小游戏内部,加载(改写js)解析二维码插件,然后直接获取结果处理。当然为了方便而言我们选择了后者来处理。

一:测试网页demo。

    在进行二维码 解析的时候,我使用的是前台插件llqrcode.js,来本地测试,也就是网页测试,来进行二维码解析,在测试成功后,开始往小游戏里面整合。网页版的测试demo:点击打开链接,用户在下载的时候,如果使用解析的demo的话,可以使用解析目录下testOne那个目录下的demo。

二:修改demo适配小游戏。

     因为在进行网页版demo测试的时候,llqrcode.js是一个纯js文件,在llqrcode.js的文件尾部,需要加上一句话。model.exports = qrcode。因为在小游戏后台引擎是封装了V8来进行实现的,所以在进行模块引入的时候,需要加上上述那一句话。虽然小游戏的引擎是V8,但是它并没有OM 和 DOM 的运行环境,所以我们需要加入对这些的支持,点击打开链接,点击下载压缩包,将weapp-adapter.js加入到我们的项目中,然后再llqrcode.js的文件头部,加入require('weapp-adapter.js');即可。

三:测试demo

     在小游戏里面我使用wx.chooseImage函数来打开本地的一个二维码图片,在成功后获得了图片的url,将url传入的qrcode.js的函数中,然后获取结果即可。例子如下:

var qrcode = require("./llqrcode.js")//引入插件实例
var testOne = function() {
  let ctxImg = wx.chooseImage({
    success: function (res) {
      qrcode.decode(res.tempFilePaths[0]);//传入url
      qrcode.callback = function(url) {
        console.log(url);
      }
    },
  })
}

猜你喜欢

转载自blog.csdn.net/swimming_in_it_/article/details/80759567