个人案例
- 货喜
服务物流行业,找专线、找三方、找物流后服务
金兔找找扫码体验
实践出真知
你有哪些一定要给新手程序猿的建议?每一位加入程序猿大军的新人,都面临着许多困惑,而作为过来人,你有哪些经验和看法,比如看哪些书、学哪些资料、听哪些课程、做哪些训练······,能够帮助新手减少碰壁、快速成长?
2019-10-14楼主是不是从app.js页面获取options?
关于转发参数丢失问题用户分享小程序,从分享的卡片点击进入,第一次打开 自定义的参数丢失 不能正常打开,再点击分享的卡片又正常,这种情况不是必然出现的。现在这种情况出现的频率还比较高
2019-09-26是按照官方给的示例来改的~ 本来大部分针对已有数据的会员做的小程序,做激活使用;但是官方审核是不按场景来~ 现在只对做任务 和 个人信息做授权用户信息、绑定手机号限制;如果这都开放了我们做小程序就没意义了!昨天审核未通过理由[图片] 我们不支持没有绑定手机号的微信用户不行吗;官方都要求用户实名制 绑定手机号才能注册微信;那这种测试真的是没话说了;而且这已经是内容的具体页面了
新规范审核标准何在?在这里吐槽下小程序审核问题;最近为了符合小程序新出的标准改了4版,两版通过两版不通过;不通过的理由也是不一样的!在这里想问下审核是否按照我们的小程序流程去做,去走!为什么不同审核人不同结果?!是不是你们自己对推出的标准都不是很清楚?! 我们团队5,6个人一起讨论改造入口符合规范为什么会不通过,为什么又会通过2次!?如果说我们5,6个人理解都错了,那请问小程序官方,你的标准是什么?能不能详细一点!别浪费我们时间,也不浪费你们时间了!!我能说你们给的规范标准实例就谈不上规范吗!!!
2019-09-19可以看下这个组件写法 https://github.com/jasondu/wxa-plugin-canvas
canvas的模拟器与真机不一致问题?模拟器可以正常画出,真机只能画出一部分……为什么是一部分? 模拟器:[图片] 真机: [图片] [代码]createNewImg: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]console.log(imgs)[代码][代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]var[代码] [代码]context = wx.createCanvasContext([代码][代码]'mycanvas'[代码][代码],[代码][代码]this[代码][代码]);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]"#ffe200"[代码][代码])[代码][代码] [代码][代码]context.fillRect(0, 0, 375, 667)[代码][代码] [代码][代码]var[代码] [代码]gobg = imgs[0];[代码][代码] [代码][代码]var[代码] [代码]touxiang = that.data.touxiang;[代码][代码] [代码][代码]var[代码] [代码]qrcode = imgs[1];[代码][代码] [代码][代码]var[代码] [代码]name = that.data.name;[代码][代码] [代码][代码]var[代码] [代码]wenziBg = imgs[2];[代码][代码] [代码][代码]var[代码] [代码]saomatishi = imgs[3];[代码][代码] [代码][代码]//绘制二维码背景[代码][代码] [代码][代码]context.rect(112.5, 350, 150, 150)[代码][代码] [代码][代码]context.clip();[代码][代码] [代码][代码]context.drawImage(qrcode, 112.5, 350, 150, 150)[代码][代码] [代码][代码]context.drawImage(gobg, 0, 0, 375, 183);[代码][代码] [代码][代码]//绘制右下角扫码提示语[代码][代码] [代码][代码]context.drawImage(saomatishi, 220, 500, 150, 180);[代码][代码] [代码][代码]//绘制左下角文字背景图[代码][代码] [代码][代码]context.drawImage(wenziBg, 25, 560, 184, 82);[代码][代码] [代码][代码]context.setFontSize(12);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]'#333'[代码][代码]);[代码][代码] [代码][代码]context.setTextAlign([代码][代码]'left'[代码][代码]);[代码][代码] [代码][代码]context.fillText([代码][代码]"扫码进入小程序,朋友和你"[代码][代码], 35, 580);[代码][代码] [代码][代码]context.stroke();[代码][代码] [代码][代码]context.setFontSize(12);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]'#333'[代码][代码]);[代码][代码] [代码][代码]context.setTextAlign([代码][代码]'left'[代码][代码]);[代码][代码] [代码][代码]context.fillText([代码][代码]"各自获得1 0 0和50积分哦"[代码][代码], 35, 605);[代码][代码] [代码][代码]context.stroke();[代码][代码] [代码][代码]context.setFontSize(24);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]'#333333'[代码][代码]);[代码][代码] [代码][代码]context.setTextAlign([代码][代码]'center'[代码][代码]);[代码][代码] [代码][代码]context.fillText(name, 187.5, 320);[代码][代码] [代码][代码]context.stroke();[代码][代码] [代码][代码]context.setFontSize(14);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]'#333333'[代码][代码]);[代码][代码] [代码][代码]context.setTextAlign([代码][代码]'center'[代码][代码]);[代码][代码] [代码][代码]context.fillText([代码][代码]"邀请你一起加入小区"[代码][代码], 187.5, 340);[代码][代码] [代码][代码]context.stroke();[代码][代码] [代码][代码]context.setFontSize(14);[代码][代码] [代码][代码]context.setFillStyle([代码][代码]'#fff'[代码][代码]);[代码][代码] [代码][代码]context.setTextAlign([代码][代码]'left'[代码][代码]);[代码][代码] [代码][代码]context.fillText([代码][代码]"扫码进入小程序"[代码][代码], 245, 590);[代码][代码] [代码][代码]context.stroke();[代码][代码] [代码][代码]//绘制头像[代码][代码] [代码][代码]context.arc(187.5, 240, 40, 0, 2 * Math.PI,[代码][代码]false[代码][代码]) [代码][代码]//画出圆[代码][代码] [代码][代码]context.strokeStyle = [代码][代码]"#ffe200"[代码][代码];[代码][代码] [代码][代码]context.clip(); [代码][代码]//裁剪上面的圆形[代码][代码] [代码][代码]context.drawImage(touxiang, 147.5, 200, 80, 80); [代码][代码]// 在刚刚裁剪的园上画图[代码][代码] [代码][代码]// context.setShadow(10, 50, 50, 'blue')[代码][代码] [代码][代码]// context.fillRect(10, 10, 150, 75)[代码][代码] [代码][代码]//最后画图[代码][代码] [代码][代码]context.draw();[代码][代码] [代码][代码]//将生成好的图片保存到本地,需要延迟一会,绘制期间耗时[代码][代码] [代码][代码]setTimeout([代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]wx.canvasToTempFilePath({[代码][代码] [代码][代码]canvasId: [代码][代码]'mycanvas'[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]var[代码] [代码]tempFilePath = res.tempFilePath;[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]imagePath: tempFilePath,[代码][代码] [代码][代码]canvasHidden: [代码][代码]true[代码][代码] [代码][代码]});[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]console.log(res);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码][代码] [代码][代码]wx.hideToast()[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]maskHidden: [代码][代码]true[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}, 2000);[代码][代码] [代码][代码]},[代码]二维码不要去扫,随便网上找的……贴出canvas主要代码,imgs图片数组我是用递归一张一张提前下载好的,大佬求解答
2019-09-19不知道升级 会不会一定执行 或者一定不执行 onLaunch
关于小程序app.js,小程序升级是否会再次执行onLaunch?app.js文件中 特别是onLaunch函数 是只有冷启动时候才会被再执行的 其它时候是不会被执行的 ;我想在版本升级的同时做缓存清除 因为一些一次性的请求都放在了onLaunch函数中 并且做了缓存; 不知道升级版本后会不会再次执行onLaunch函数
2019-08-18目前我也遇到类似的情况 测试永远没找到问题 但是后台会报一些不可思议的错误;你这个吸顶可以考虑下加个settimeout定时任务 这样来控制性能消耗
小程序出现大量脚本错误,应该如何处理?[图片] 小程序大量出现上图所述错误,代码如下: /** * 页面滚动事件 */ onPageScroll: function(e) { let that = this; const query = wx.createSelectorQuery(); query.select('#pad').boundingClientRect(); query.exec(function(res) { if (res == null || res.length < 1 || res[0].top == null) { return; } that.setData({ scroll: res[0].top <= 0 ? true : false, autoPlay: (res[0].top <= 0 ? false : true) }); }) }, 目的是页面滚动的时候,view实现吸顶效果,在开发者工具及真机调试中,都能够正常运行,但是在日志中出现大量如上图提示,这里应该解决呢?
2019-08-17可以分装个方法;通过你传入页面路径参数 判断 getCurrentPages中是否存在该页面来决定是返回返回几层 还是跳转
wx.navigateBack上上级页面,上级会出现一下再返回上上级页面?onUnload () { wx.navigateBack({ delta: 2 }) }, 点击左上角返回按钮,需要返回上上级页面,但是,过程中会出现上级页面,再返回上上级页面,用了wx.reLaunch也是同样的问题,其他路由跳转也是。可否,直接返回上上页
2019-08-17这个可以啊
请问分包后 本地存储storage 无法共用嘛 ?如题
2019-08-17处理好异步操作;app.js onLaunch只有在冷启动时候才会被重新执行
appjs的onLaunch与页面onLoad执行先后的问题当小程序加载的时候appjs里的接口数据还没返回首页的请求就已经发出去了,这样就导致在首页请求接口或者是逻辑判断的时候拿不到数据从而报错。 因为产品有分享功能,分享产品详情页面给别人,打开后也会遇到上面说的情况,还有就是当小程序在后台运行时,退出来打开别人分享的链接,这时候是不是appjs里的onLaunch是不是不会执行?
2019-08-14我们也遇到过;好像是微信版本最新不代表小程序版本是最新;微信内置的是小程序的稳定基础版;会在一定时间内自动更新
微信已经是最新版本,仍然提示:“微信版本过低”[图片] [图片] [图片]
2019-08-12