收藏
回答

小程序真机测试可以识别,发布的程序不能识别,预览也不行

框架类型 问题类型 操作系统 工具版本
小程序 Bug Windows 1.0.0



- 当前 Bug 的表现(可附上截图)

这是有关识别图片的全部代码,是官方的代码,我只是修改了Authorization,把上传到easyAR官网的图片的Token替换为了自己的图片的,其他的没有改动。现在我的版本已经是上线版本了,真机测试的时候可以识别成功,在手机上扫小程序码打开之后,还是识别不成功,所以我,想问下,对于已经上线,但是识别出问题,我该怎么做,还有这个识别不成功的原因是i什么,我该怎么修改。希望得到帮助。谢谢

- 预期表现


- 复现路径


- 提供一个最简复现 Demo


//pages/recognition/recognition.js //import upng from '../../UPNG.js' Page({ data: { height: '360', width: '20', status: false, scanStatus: 'none', msg: "请点击识别图片", src: '' }, onLoad: function (options) { this.ctx = wx.createCameraContext(); wx.getSystemInfo({ success: res => { this.setData({ height: res.windowHeight * 0.8, width: res.windowWidth}); } }); }, stopScan: function () { this.setData({ scanStatus: 'none' }); }, onShow: function () { this.setData({ msg: '请点击识别图片' }); }, error: function (e) { this.setData({ msg: '打开摄像头失败,请点击“立即体验' }); }, urlTobase64(imgPath) { let that = this; wx.getFileSystemManager().readFile({ filePath: imgPath, //选择图片返回的相对路径 encoding: 'base64', //编码格式 success: res => { //成功的回调 console.log('data:image/png;base64,' + res.data) that.searchPhotp(res.data) } }) // let canvas = wx.createCanvasContext('firstCanvas') // // 1. 绘制图片至canvas // canvas.drawImage(imgPath, 0, 0, this.data.width, this.data.height); // // 绘制完成后执行回调,API 1.7.0 // canvas.draw(false, () => { // // 2. 获取图像数据, API 1.9.0 // wx.canvasGetImageData({ // canvasId: 'firstCanvas', // x: 0, // y: 0, // width: this.data.width, // height: this.data.height, // success(res) { // console.log(res) // // 3. png编码 // let pngData = upng.encode([res.data.buffer], res.width, res.height, 1, 0) // 4. base64编码 ///let base64 = wx.arrayBufferToBase64(pngData) // that.searchPhotp(base64) // } // }) // }) }, searchPhotp: function(imageBase64) { let that = this; wx.request({ url: 'https://cn1-crs.easyar.com:8443/search', data: { image: imageBase64 }, header: { 'Authorization': 'ah6HlJqoOX1d6ku+4AePd+heiQjz+3jOjFsryYsNm1aGlfNRQZTnMXkBLACj6fZ727M5P9Ac0Q94i5MJKGJUbQ==', 'content-type': 'application/json' // 默认值 }, method: 'POST', success(res) { if (res.data.statusCode == 0) { that.setData({ msg: '识别成功'}); setTimeout(() => { console.info('go to webar'); wx.navigateTo({ url: '../show/show' }); }, 500); } else { that.status = false; that.setData({ msg: '识别失败,请点击重试'}); } }, fail(err) { console.log(err) that.status = false; that.setData({ msg: '识别失败,请点击重试'}); } }) }, takePhoto: function (e) { if (this.status) return; console.log(11111) this.status = true; this.ctx.takePhoto({ quality: 'low', success: res => { this.setData({ msg: '识别中...', src: res.tempImagePath}); this.urlTobase64(res.tempImagePath); }, fail: err => { this.stopScan(); this.setData({ msg: '未识别到目标' }); } }); } })
回答关注问题邀请回答
收藏

1 个回答

  • 是小白啊
    是小白啊
    2019-04-04

    原贴处理中,请勿重复发帖

    2019-04-04
    有用
    回复 1
    • 朔光
      朔光
      2020-10-28
      请问怎么解决的,出现了同样情况
      2020-10-28
      回复
登录 后发表内容