哆来梦
哆来梦
  • 发布:2019-08-20 22:37
  • 更新:2019-11-30 10:45
  • 阅读:2238

【报Bug】子组件绘图canvas ,安卓客户端draw() 方法调用无反应

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

在子组件写了一个canvas, 把一张图绘制上去,然后调用draw方法,在微信开发者工具中能成功绘制,在安卓真机 预览版或 真机调试 不成功,无回调,无报错。

[步骤]
(代码见附件)

[结果]

[期望]
绘制成功,并生成图片

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

HBuilderX
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]
2.1.3.20190723

[windows版本号]
windows 10 家庭中文版

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
微信小程序

[运行端版本号] 微信开发者工具 Stable (1.02.1907160)

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX

[编译模式是老模板模式还是新的自定义组件模式?]
自定义组件模式

App运行环境说明

[Android版本号] android 9 miui 10.3.4.0(peacnxm)

[iOS版本号]

[手机型号] 小米8 6+64

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

313712831

2019-08-20 22:37 负责人:无 分享
已邀请:
哆来梦

哆来梦 (作者) - 313712831@qq.com

const ctx = uni.createCanvasContext('shareCanvas', this);  

                    ctx.drawImage(res_img.path, 0, 0, canvas_w, canvas_w / ratio); // 小程序码图片  

                    ctx.font = '20px sans-serif'; //设置文字类型  
                    ctx.setFillStyle('#fff'); //设置文字颜色  
                    ctx.fillRect(0, canvas_w / ratio, canvas_w, 40); //设置矩形  
                    ctx.setFillStyle('#707070'); //设置文字颜色  
                    ctx.setTextAlign('left'); // 文字居中  
                    ctx.fillText(`桂城街道下溪村西边东思想10号`, 10, canvas_w / ratio + 25);  

                    ctx.setFillStyle('#f00'); //设置尾部文字背景  
                    ctx.fillRect(0, canvas_w / ratio + 40, canvas_w, 50); //设置尾部矩形  
                    ctx.setFillStyle('#fff'); //设置尾部文字颜色  
                    ctx.setFontSize(18); //设置文字类型  
                    ctx.setTextAlign('center'); // 文字居中  

                    ctx.fillText(`哆来梦 扫码看房`, canvas_w / 2, canvas_w / ratio + 70);  

                    this.canvas_h = canvas_w / ratio + 86;  
                    const _this = this;  
                    ctx.draw(false, () => {  
                        console.log('draw回调', _this);  
                        const s_t = setTimeout(async () => { // 防止手机上样式错乱  
                            const [err_fp, res_fp] = await uni.canvasToTempFilePath({  
                                canvasId: 'shareCanvas',  
                            }, _this);  
                            if (!err_fp) {  
                                console.log(res_fp);  
                                this.xcx_img = res_fp.tempFilePath;  
                            } else {  
                                console.error('绘图失败',err_fp);  
                            }  
                            this.share_loading = false;  
                            console.log(this.xcx_img);  
                            clearTimeout(s_t);  
                        }, 500);  
                    });  
                } catch (err) {  
                    console.log(err)  
                }
letherflee

letherflee

请问解决了吗

  • 哆来梦 (作者)

    自己的项目,很久没去看

    2020-01-11 22:32

雨夜敬清秋

雨夜敬清秋

请问解决了吗

  • 哆来梦 (作者)

    自己的项目,很久没去看

    2020-01-11 22:32

该问题目前已经被锁定, 无法添加新回复