收藏
回答

canvas在预览和真机的情况无法生效,但是开发者工具能显示?

// pages/canvas/canvas.js
Page({
    data: {
        value:0.8
    },
    drawProgress() {
        const query = wx.createSelectorQuery().in(this);
        query
            .select("#quan")
            .fields({
                nodetrue,
                sizetrue,
            })
            .exec((res) => {
                const node = res[0].node;
                const ctx = node.getContext("2d");
                const dpr = wx.getSystemInfoSync().pixelRatio;
                node.width = res[0].width * dpr;
                node.height = res[0].height * dpr;
                ctx.lineWidth = 10;
                ctx.lineJoin = "round";
                ctx.beginPath();
                ctx.moveTo(
                    node.width / 2,
                    node.height / 2 - (node.width / 2 - 10)
                );
                ctx.arc(
                    node.width / 2,
                    node.height / 2,
                    node.width / 2 - 10,
                    Math.PI * 1.5,
                    Math.PI * (Number(this.data.value) * 2 + 1.5)
                );
                const gradient = ctx.createConicGradient(
                    Math.PI * 3.5,
                    node.width,
                    node.height / 2
                );
                gradient.addColorStop(0"#29ecff");
                gradient.addColorStop(0.25"#febb78");
                gradient.addColorStop(0.5"#ff5883");
                gradient.addColorStop(0.75"#8e80ff");
                gradient.addColorStop(1"#32e8ff");
                ctx.strokeStyle = gradient;
                setTimeout(() => {
                    ctx.stroke();
                }, 1500);
            });
    },
})

})

具体代码有点多,主要是进度条这一段没生效。

开发者工具效果图:,预览效果图:,真机调试效果图:;同时真机调试会报错:,查了很多地方,许多人有这样的情况,想问问官方到底咋回事?同时也想问问发生了解决了的大佬,如何解决的。

我debugger 打断点发现代码执行到这个位置就结束了,并没有走进方法内,如图:.

就希望大佬能给指点一下,难道是多canvas不兼容吗?

回答关注问题邀请回答
收藏

1 个回答

  • 😶
    😶
    2021-04-21

    canvas 2d不支持真机,请使用预览调试

    2021-04-21
    有用
    回复
登录 后发表内容