- 远程调试带有canvas组件的页面时开发工具抛出r.canvas异常
新建一个小程序项目, 1、在pages/index.wxml中加入: <canvas type='2d' id='testcanv' style='width:100%;height:300px'></canvas> 2、在app.js:onLoad中加入: wx.createSelectorQuery().select('#testcanv').node((res)=>{ if (res && res.node) { let {node:canvas}=res console.log('found node!') wx.getSystemInfo({success:sysinfo=>{ let s = "hello world" let ctx = canvas.getContext('2d') ctx.font = "32px bold Arial" let w=ctx.measureText(s).width ctx.fillText(s, sysinfo.screenWidth/2-w/2, 32) }}) } else console.log('node not found') }).exec() 3、点击远程调试(测试机分别使用iPhoneXR 及 华为M6 pad, 系统及微信均更新到最新版), 开发工具抛出以下异常: runtime.js?devtools_ignore=true:1 eval script evaluate_id #12 failed TypeError: r.Canvas is not a constructor at n.value (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:733280) at n.value (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:621289) at t (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:621461) at b (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:620332) at eval (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:732657) at eval (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:717590) at Object.m (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:77498) at Object.value [as subscribeHandler] (runtime.js?devtools_ignore=true:1) at eval (eval at c (runtime.js?devtools_ignore=true:1), <anonymous>:1:17) at eval (<anonymous>)
2020-03-16 - 文档中的canvas.toDataURL方法是否真存在?
按照文档https://developers.weixin.qq.com/minigame/dev/api/render/canvas/Canvas.toDataURL.html,这个方法应当存在。但用目前最新的开发工具(版本v1.02.1911180)测试: wxml里放一个<canvas id='canv' ></canvas> 及一个按钮在相应js里在canvas后随便画些东西在绑定的按钮处理函数里用canvas.toDataURL()调试发现这个canvas上的方法是undefined 社区里相关的问题及其回答显示这个方法很可能没有实现: 在模拟器上可以透过未文档化的gl.canvas.toDataURL,但无法使用在真的ios机器上。参见 https://developers.weixin.qq.com/community/develop/doc/000c84be3845481a1029641e656400?highline=%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84canvas.toDataURL%E6%96%B9%E6%B3%95%E6%98%AF%E5%90%A6%E7%9C%9F%E5%AD%98%E5%9C%A8%3F 问题是:这个文档所述的方法是否存在及如何使用这个方法?谢谢。
2020-02-26