
- 发布:2025-06-24 19:39
- 更新:2025-06-24 20:39
- 阅读:64

codon (作者)
下图绘制一个矩形,在Android 9上无法显示,draw()的回调执行了
-
-
codon (作者)
- <template>
- <view class="w-full h-full">
- <canvas
- id="canvasId"
- canvas-id="canvasId"
class="w-[300px] h-[300px]"
style="border: 2px solid red"
@error="onError"
/>
</view>
</template>
<script setup>
import { onMounted } from 'vue'
const canvasId = ref('testCanvas')
onMounted(() => {
const ctx = uni.createCanvasContext(canvasId.value)
console.warn('====ctx====', ctx)
ctx.setFillStyle('#00f')
ctx.fillRect(0, 0, 200, 200)
ctx.draw(false, () => {
console.warn('===draw完成===')
})
})
function onError(e) {
console.warn('====onError====', e)
}
</script>
<style scoped lang="scss">
</style>
2025-06-24 20:30
-
codon (作者)
回复 DCloud_UNI_yuhe: 发你了,麻烦看下,我发现第二次进入canvas的页面,蓝色矩形绘制出来了,好奇怪,我延迟cxt.draw(),第一次进入页面仍然不显示蓝色矩形
2025-06-24 20:31
-
-

codon (作者)
下面两张图,没显示蓝色矩形的是第一次打开这个页面的效果,第二次进入这个页面,就能正常显示蓝色矩形了。
我把App进程杀掉,重新打开App,再次打开页面又不显示蓝色矩形了,第二次打开又显示了
codon (作者)
hbuilderx : 4.57
安卓10 chrome/91.0.4472.114测试了没问题,主要还是因为webview的浏览器内核版本太低了?
2025-06-24 19:46
codon (作者)
canvas dom上的touchmove事件是生效的,就会没绘制出内容
2025-06-24 19:49
codon (作者)
麻烦看下下面的demo
2025-06-24 20:19