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
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的一个已知兼容性问题。问题原因和解决方案如下:
- 问题原因:
- iOS平台下uni.scanCode内部调用了原生扫码组件
- 当扫码界面关闭时,会尝试调用this.$refs.barcode.cancel方法
- 但实际项目中可能不存在这个ref引用
- 解决方案:
- 方案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
}
})