小程序在使用canvans时,iPhoneX iPhone12,开发者遇到白屏闪一下,导致query.exec方法无法进入回调,
iPhoneX
ios版本16.3
报错信息:检测到 NodesRef.fields 不能立即回调,可能由于 scroll-view 的按需加载特性,使得不在屏的节点无法立即取到节点相关信息。
请看图1,我拍完照是想给照片打水印,用canvas
const query = uni.createSelectorQuery().in(that)//in(this),不加有时获取不到对应的DOM元素
query.select('#myCanvas').fields({ node: true, size: true })
query.exec((_res) => { //这里在白屏的时候 无法进入
const canvas = _res[0].node
const ctx = canvas.getContext('2d')
canvas.width = curWidth
canvas.height = curHeight
//初始化画布
ctx.fillRect(0, 0, canvas.width, canvas.height);
// 创建image
let image = canvas.createImage();
// console.log('获取后的文件地址----',res.path);
image.src = res.path;
// 图片加载完成
image.onload = () => {
// console.log('image.onload成功----',image);
// 绘制图片
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
// 字体大小
ctx.font = `${myFontSize}px 黑体`;
// 字体颜色
ctx.fillStyle = '#ffffff';
// 绘制文本
ctx.fillText(roleNameInfo, canvas.width - myFontRight, canvas.height - 30)
// 导出图片
const exportImage = () => {
uni.canvasToTempFilePath({
canvas,
fileType:"jpg",
quality: myQuality,
success: async (res) => {
// 上传图片 这里省略
callback(res.tempFilePath)
setTimeout(() => {
// 让图片先加载出来,在关闭
uni.hideLoading()
}, 500)
},
fail: (err) => {
}
})
}
setTimeout(exportImage, 500)
}
出现问题后我点开console 就是打印这个了:检测到 NodesRef.fields 不能立即回调,可能由于 scroll-view 的按需加载特性,使得不在屏的节点无法立即取到节点相关信息。
你好,麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点