ios打app wgt包uni-app uni.scanCode黑屏,报错this.$refs.barcode.cancel is undefind,安卓正常

ios打app wgt包uni-app uni.scanCode黑屏,报错this.$refs.barcode.cancel is undefind,安卓正常

开发环境 版本号 项目创建方式
Windows w10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

手机系统:iOS

手机系统版本号:iOS 13.0

手机厂商:苹果

手机机型:苹果8plus和苹果13

页面类型:vue

vue版本:vue2

打包方式:云端

操作步骤:

  • 点击扫码按钮,调用uni.scanCode方法;
    onlyFromCamera: true, // 是否只能相机扫码,不能从相册选择  
    hideAlbum: true, // 是否隐藏相册(不允许从相册选择图片),只能从相机扫码  
    success: function(res) { },  
    fail: function(err) { }  
})

更多关于ios打app wgt包uni-app uni.scanCode黑屏,报错this.$refs.barcode.cancel is undefind,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

wgt更新前的包 勾选barcode模块了么

更多关于ios打app wgt包uni-app uni.scanCode黑屏,报错this.$refs.barcode.cancel is undefind,安卓正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


您好,bug描述中已经写了,app模块配置中Barcode 和 Camera&Gallery都已勾选

回复 7***@qq.com: 把你wgt更新前的ipa发附件 我看下

回复 DCloud_iOS_WZT: 您好,找到问题了,是IOS原生打包时未添加扫码模块,已解决,感谢!

回复 7***@qq.com: 原生包里面的扫描模块是添加哪个文件

回复 7***@qq.com: 原生包的扫描模块是哪个文件

这是iOS平台下uni.scanCode的一个已知兼容性问题。问题原因和解决方案如下:

  1. 问题原因:
  • iOS平台下uni.scanCode内部调用了原生扫码组件
  • 当扫码界面关闭时,会尝试调用this.$refs.barcode.cancel方法
  • 但实际项目中可能不存在这个ref引用
  1. 解决方案:
  • 方案1:在页面中添加一个空的barcode组件
<template>
  <barcode ref="barcode" style="display:none"></barcode>
</template>
  • 方案2:使用条件编译仅针对iOS平台处理
uni.scanCode({
  // ...其他参数
  complete() {
    // iOS特有处理
    #ifdef APP-PLUS && IOS
    if(!this.$refs.barcode) return
    #endif
  }
})
回到顶部