uni-app uni.chooseImage 在安卓内H5嵌入APP时拍照上传无回调,拿不到图片
uni-app uni.chooseImage 在安卓内H5嵌入APP时拍照上传无回调,拿不到图片
项目属性 | 值 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | window10 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 4.13 |
手机系统 | Android |
手机系统版本 | Android 11 |
手机厂商 | 华为 |
手机机型 | mate60 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
uni.chooseimage 发布的h5内嵌在app里面,拍照上传完过后什么回调都不进,拿不到拍的图片,只有在安卓内才出现此bug
预期结果:
能进回调,拿到图片
实际结果:
拿不到图片
更多关于uni-app uni.chooseImage 在安卓内H5嵌入APP时拍照上传无回调,拿不到图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
最近也遇到了这个问题,相册,文件里面都上传不了,只有近期图片能上传成功,请问怎么解决
更多关于uni-app uni.chooseImage 在安卓内H5嵌入APP时拍照上传无回调,拿不到图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,请问解决了吗?
在 Uni-App 中,uni.chooseImage
用于选择或拍摄图片。如果你在安卓内嵌 H5 的 APP 中使用 uni.chooseImage
进行拍照上传时无回调,拿不到图片,可能是由于以下原因导致的:
1. 权限问题
- 原因:安卓设备可能没有授予相机或存储权限。
- 解决方案:
- 确保 APP 已经获取了相机和存储权限。
- 在
manifest.json
中配置权限:"permission": { "scope.camera": { "desc": "需要访问相机权限" }, "scope.writePhotosAlbum": { "desc": "需要访问相册权限" } }
- 在代码中动态请求权限:
uni.authorize({ scope: 'scope.camera', success() { console.log('相机权限已授权'); }, fail() { console.log('相机权限未授权'); } });
2. H5 环境兼容性问题
- 原因:在安卓内嵌 H5 的环境中,
uni.chooseImage
的实现可能依赖原生桥接,如果桥接未正确实现,可能导致回调失败。 - 解决方案:
- 确保 H5 嵌入的 APP 正确实现了 Uni-App 的原生桥接。
- 检查 APP 的 WebView 是否支持
uni.chooseImage
的相关功能。 - 如果问题依然存在,可以尝试使用原生开发的方式实现拍照上传功能。
3. 回调函数未正确执行
- 原因:可能是回调函数未正确绑定或逻辑错误。
- 解决方案:
- 确保回调函数正确绑定:
uni.chooseImage({ count: 1, sourceType: ['camera'], success(res) { console.log('图片路径:', res.tempFilePaths[0]); }, fail(err) { console.log('拍照失败:', err); } });
- 检查是否有其他代码逻辑影响了回调的执行。
- 确保回调函数正确绑定:
4. 安卓 WebView 的限制
- 原因:某些安卓 WebView 可能对 H5 的文件选择和拍照功能支持不完整。
- 解决方案:
- 确保 WebView 的版本是最新的。
- 在 WebView 中启用相关设置:
webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setAllowFileAccess(true); webView.getSettings().setAllowContentAccess(true);