为什么我使用uni.connectSocket建立socket连接,然后通过 uni.createCameraContext()创建camera上下文,并且通过.takephoto获取camera当前画面的图片,但是在安卓和华为机型测试的时候会出现一个问题,就是我在代码中设置当onMessage()监听到回传消息并且回传消息为正确时,才会再次触发函数进行.takephoto()进行拍照,并且我通过console.log进行控制台打印函数进度,但是当运行到.takephoto时就没有打印内部的console.log
const captureAndUpload = () => {
ctx.value = uni.createCameraContext()
return new Promise((resolve, reject) => {
console.log('开始执行 captureAndUpload 函数')
ctx.value.takePhoto({
quality: 'low',
success: (res) => {
console.log('takePhoto 获取图片成功')
const fs = uni.getFileSystemManager()
fs.readFile({
filePath: res.tempImagePath,
encoding: 'base64',
success: (fileRes) => {
resolve(fileRes.data) // ✅ 通过 resolve 返回
},
fail: (err) => {
console.error('readFile 失败:', err)
reject(err)
}
})
},
fail: (err) => {
console.error('takePhoto 失败:', err)
reject(err)
}
})
})
}
1***@qq.com (作者)
现在没有时间再用原生小程序测试了,已经接近尾声了
2025-08-22 21:51