其实随意搜索一下还是有很多先例的,只是有些比较坑得自己筛选。https://blog.csdn.net/qq_36875339/article/details/81086205这篇文章真是好,以至于我想给赞赏canvasclass"canvas"id"canvas"canvas-id"canvas"disable-scroll"true"bindtouchstart"canvasStart"bindtouchmove"canvasMove"bindtouchend"canvasEnd"touchcancel"canvasEnd"binderror"canvasIdErrorCallback"/canvas复制代码复制代码这便是简单雏形了。复制代码代码可以参考这里:复制代码http://www.wxapp-union.com/portal.php?modviewaid2538复制代码Tips:这些方法最好不要放在外面,还是放在methods里面比较好。不然会给你警告,搞得一脸懵逼。说你canvasMovehasnotdefined...复制代码//canvas全局配置varcontextnull;//使用wx.createContext获取绘图上下文contextvarisButtonDownfalse;vararrx[];vararry[];vararrz[];varcanvasw0;varcanvash0;//获取系统信息wx.getSystemInfo({success:function(res){canvaswres.windowWidth;//设备宽度canvashres.windowWidth*7/15;}});//注册页面Page({canvasIdErrorCallback:function(e){console.error(e.detail.errMsg)},canvasStart:function(event){isButtonDowntrue;arrz.push(0);arrx.push(event.changedTouches[0].x);arry.push(event.changedTouches[0].y);//context.moveTo(event.changedTouches[0].x,event.changedTouches[0].y);},canvasMove:function(event){if(isButtonDown){arrz.push(1);arrx.push(event.changedTouches[0].x);arry.push(event.changedTouches[0].y);//context.lineTo(event.changedTouches[0].x,event.changedTouches[0].y);//context.stroke();//context.draw()};for(vari0;iarrx.length;i++){if(arrz[i]0){context.moveTo(arrx[i],arry[i])}else{context.lineTo(arrx[i],arry[i])};};context.clearRect(0,0,canvasw,canvash);context.setStrokeStyle('#000000');context.setLineWidth(4);context.setLineCap('round');context.setLineJoin('round');context.stroke();context.draw(false);},canvasEnd:function(event){isButtonDownfalse;},cleardraw:function(){//清除画布arrx[];arry[];arrz[];context.clearRect(0,0,canvasw,canvash);context.draw(true);},getimg:function(){if(arrx.length0){wx.showModal({title:'提示',content:'签名内容不能为空!',showCancel:false});returnfalse;};//生成图片wx.canvasToTempFilePath({canvasId:'canvas',success:function(res){console.log(res.tempFilePath);//存入服务器wx.uploadFile({url:'a.php',//接口地址filePath:res.tempFilePath,name:'file',formData:{//HTTP请求中其他额外的formdata'user':'test'},success:function(res){console.log(res);},fail:function(res){console.log(res);},complete:function(res){}});}})},/***页面的初始数据*/data:{src:""},/***生命周期函数--监听页面加载*/onLoad:function(options){//使用wx.createContext获取绘图上下文contextcontextwx.createCanvasContext('canvas');context.beginPath()context.setStrokeStyle('#000000');context.setLineWidth(4);context.setLineCap('round');context.setLineJoin('round');}})复制代码复制代码这里逻辑是这样的:复制代码1.首先用canvas实现画图,然后用wx.canvasToTempFilePath拿到res.tempFilePath(这是暂时存储的地址,不可以直接打开的)复制代码2.其次用wx.getFileSystemManager().readFile({filePath:res.tempFilePaths,//选择图片返回的相对路径encoding:'base64',//编码格式success:res{//成功的回调console.log('data:image/png;base64,'+res.data)———这个就是可以直接打开的base64的图片,存储在本地的。}})3.最后,把这个地址存到vuex,哪里都可以用啦。复制代码复制代码(由于特别原因不能完全贴代码,但是这是实际项目,没毛病~)复制代码复制代码
小程序canvas实现电子签名-微信电子签名小程序-小程序电子签名
浏览量:2645
时间:
来源:weixin_34174132
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










