微信小程序开发的陷阱
小程序开发
浏览:1059 次

什么是小程序?
腾讯微信终端就像原生app开发。使用一堆腾讯编写的组件和一些自制组件来开发app。
第一个小程序
以前,我不得不在下班后和周末编写代码。在做了一段时间的小程序之后,我实际上创建了一个音乐播放器,音乐播放器。这个播放器最重要的是加载歌词。毕竟,你必须计算。
第一个进入公司的小程序
嗯,这不是一个完整的小程序。我已经为其中的一部分编写了几个组件。然后,2018年1月22日上线。
介绍之后,我开始谈论我自己的错误
名片管理:原理很简单。用户输入信息并将头像上传到名片模板以形成个人名片。单击按钮下载。名片保存在相册中。
坑:后台不能单独发送包含用户信息的名片链接,这样我就可以打电话下载了。原因是服务器很难操作。毕竟,这不是一个专业的后台。我什么都说不出来。所以我将开发卡片下载功能。在阅读了一周的文件后,我接手了。我有点紧张。毕竟,后台是无法修复的。然后,当我接手时,我说我会试着看看是否能坚持一两天。你知道为什么。毕竟,我不知道用帆布画画是否可行。把它卷起来。
我仍然需要查看文档,查看文档的画布部分,并通过谷歌询问其他人是如何做到的。
在这个过程中,我发现我的表达和写作能力仍然很差。写入代码
调用wx CreateCanvasContext(canvasId,this)以形成画布。记住要保存执行上下文的统一性,也就是说,
同时,保持画布大小与屏幕一致
设置像素(){
常量{
窗口宽度,
window高度
}=wx.getSystemInfoSync();
//将画布设置为与屏幕相同的大小
这宽度=this.rpxToPx(700);
这高度=this.rpxToPx(1040);
const ctx=参数[0];
ctx.setFillStyle(“白色”);
ctx。fillRect(0,0,this.width,this.height);
ctx.draw();
},
调用canvasContext.drawImage粘贴图片
downAndSetImage(ctx、url、arr){
//arr=[x,y,宽度,高度]
arr=此.rpxToPx(arr);

ctx.draw(真);
return new Promise((resolve,rej)=>{
wx.download文件({
url:url,
成功:函数(res){
让路径=res.tempFilePath;
//ctx。drawImage(路径,arr[0],arr[1],arr[2],arr[3]);//它也在px//转换中
ctx.save();
ctx.draw图像(
路径
arr.shift(),
arr.shift(),
arr.shift(),
阵列移位()
); // 它也在px//转换中
解决(1);
ctx.restore();
},
失败:()=>{
ctx.save();
wx.show模式({
标题:“提示”,
内容:'图像采集失败`
});
ctx.restore();
Rej(“图像采集失败”);
},
});
});
},

调用canvasContext.fillText编写文本。
setText(ctx、text、arr){
//arr:[x,y,字体大小]
ctx.draw(真);
arr=此.rpxToPx(arr);
return new Promise((resolve,rej)=>{
arr.length==2?ctx。设置字体大小(14):ctx.setFontSize(arr.pop());
ctx.setFillStyle(“黑色”);
ctx.setTextBaseline(“顶部”);
ctx。fillText(文本,arr.shift(),arr.shift());
解决(3);
});
},
然后绘制并开始导出。记住此时使用jpg格式,因为png是以透明背景导出的。使用的API:wx canvasToTempFilePath(OBJECT,this)
//输出图像路径
输出图像(){
const ctx=参数[0];
常数=此;
常量{
窗口宽度,
windowHeight,窗口高度,
像素比率
}=wx.getSystemInfoSync();
return new Promise((resolve,rej)=>{
wx.canvasToTempFilePath({
x: 0,
y: 0,
//宽度:50,
//高度:50,
destWidth:pixelRatio*windowWidth,//画布宽度*像素比率