- canvas 里面的点击事件怎么做?
[图片] 怎么给这些圆圆绑定事件?
2018-09-04 - wx.canvasToTempFilePath报错
wx.canvasToTempFilePath报错cancas to tempFilepath:fail:create:bitmap failed... 首先给你的画图方法进行适当的延时 ctx.drawImage(res.path, 0, 0, 300, 400); ctx.draw(false, () => { setTimeout(() => { that.save_share_img(); }, 2000); }) 然后查看画笔 wx.canvasToTempFilePath({ x: 0, y: 0, width: 500, height: 800, destWidth: 500, destHeight: 800, canvasId: 'shareCanvas', 这边的'shareCanvas'这块画布区域在 ctx.draw(false, () => { setTimeout(() => { that.save_share_img(); }, 2000); }) 有没有显示出来 这块展示区域没有展示出来,就会一直报这个错误
2018-12-20 - 小程序与小游戏获取用户信息接口调整,请开发者注意升级。
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息: 一、小程序: 1、使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。 详情参考文档: https://developers.weixin.qq.com/miniprogram/dev/component/button.html 2、使用 open-data 展示用户基本信息。 详情参考文档: https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html 二、小游戏: 1、使用用户信息按钮 UserInfoButton。 详情参考文档: https://developers.weixin.qq.com/minigame/dev/document/open-api/user-info/wx.createUserInfoButton.html 2、开放数据域下的展示用户信息。 详细参考文档: https://developers.weixin.qq.com/minigame/dev/document/open-api/data/wx.getUserInfo.html 请各位开发者注意及时调整接口。
2018-04-16 - 微信小程序开发常见问题(七)
知晓程序员,专注微信小程序开发的程序员! 一、判断小程序版本号 小程序的API是不断更新的,你可能使用某个API时,文档里会说明,此API在1.x.x版本开始支持,需要自己做兼容处理。 如果你使用小程序版本号做兼容,就必须了解小程序的基础库版本号规则,在这里介绍一下。 小程序基础库版本号使用 semver 规范,格式为 Major.Minor.Patch,Major、Minor、Patch 均为整数,1.9.901、2.44.322、10.32.44 都是符合 semver 风格的版本号。 以下是官方提供的兼容代码: [图片] 二、设置仅发起者可转发 有些场景,需要仅发起者可转发,参与者不能转发。比如老师上课点名签到,老师如果把签到小程序分享到群内,只希望现场的同学可以正常签到,即使其他同学想分享,也没有权限。 方法一:禁止显示分享按钮 小程序中有个API,wx.hideShareMenu,如下: [图片] 在page.js中,正常写入onShareAppMessage,然后判断用户是否为发起者,如果是发起者,调用wx.showShareMenu,如果不是发起者,调用wx.hideShareMenu。 方法二:单独做一个分享后的页面 这个办法比较low,但也能实现。思路是在onShareAppMessage里面的写入一个默认path,打开之后就是一个提示界面。如果是发起者,就把path修改成正常的路径~ [图片] 三、swiper禁止手动滑动 最简单的方式,在swiper上面加一个透明的蒙层~ 四、使用switchTab跳转后页面不刷新的问题 方法一:通过getCurrentPages获取获取当前的页面栈,调用对应的方法 [图片] switchTab成功跳转后调用success,此时可以拿到跳转后页面的page对象,从而调用页面onLoad方法重载页面; 方法二:把还tab的页面,代码逻辑放在onShow里面 [图片] 五、e.target和e.currentTarget的区别 简单的说,e.currentTarge是指注册了事件监听器的对象,e.target是指对象里的子对象,实际触发这个事件的对象。 [图片] 小程序开发过程中,如果通过event未获取到值时,或许是你自己用错了。 六、图片设置为圆角,会快速从方形闪烁一下 解决方法:给父元素设置圆角,或者给图片添加透明边框 七、input中使用手写输入法的坑 之前总有“报名工具”的小程序用户反馈,说是报名内容都输入完整了,但是保存不完整。 经排查,发现所有使用手写输入法的用户,都会遇到这现象。排查代码发现绑定的input事件,用户如果不点击手写输入法上的确认键,就不会触发bindinput。 这种情况下,有两种解决方式: 1、改用event.detail.value的形式来获取form表单数据; 2、再添加一个bindblur事件,保证事件能够正常执行; 因报名工具小程序中,有用户自定义字段,所以不确定用户会添加多少个字段,使用event获取的话,需要给每个input添加一个name属性,相对比较费劲,我改用了第二种方案。 [图片] 八、IOS下用户授权后,头像和昵称显示问题 这个问题其实是图片src是一个data中的变量,然后这个变量又发生了变化。但是在IOS设备上,就是没办法显示更改后的图片。(或者编辑图文投票时,也会有这现象) 解决办法:通过wx:if和wx:else判断,展示不同的image组件 [图片] 九、一键退出(隐藏)小程序 首先要说,这个需求不合理,右上角有退出按钮,但既然有同学问这问题,我也自己折腾了一下,基本可以实现一键退出。 先在每个page中添加隐藏page的方法: [图片] 有退出button的页面,对应的JS添加方法: [图片] 虽然可以实现,但也很low,其实就是隐藏了所有的page而已~
2018-04-11 - 高适应性的自定义导航栏开发思路
[图片] 非自定义导航栏高度怎么计算? 自定义导航栏高度由谁决定? 小程序自定义导航栏开发注意点与参考文档 一、默认导航栏高度怎么计算?(非custom情况下获取) wx.getSystemInfo 和 wx.getSystemInfoSync 获取机器信息 screenHeight - windowHeight 计算标题栏高度 [代码]{[代码][代码] [代码][代码]'iPhone'[代码][代码]: 64,[代码][代码] [代码][代码]'iPhone X'[代码][代码]: 88,[代码][代码] [代码][代码]'android'[代码][代码]: 68[代码][代码] [代码][代码]}[代码]不完全统计(ip6 , ip5 , ip6p , ipx , 小米mix2 , 小米5等综合了开发工具提供的数据和真机数据)所得 二、自定义导航栏高度由谁决定?(自定义情况下,屏幕高度和窗口高度没有差别,所以要通过步骤1先获取数据,预定义到代码中) 开发时发现,自定义导航栏的实现需要 包含状态栏+胶囊 :没有自定义导航栏的时候页面是全屏幕滚动会出现在状态栏的下一层 根据上一标题中步骤1的函数,可以获得状态栏高度 statusBarHeight demo,点击打开小程序开发工具 三、小程序自定义导航栏开发注意点与参考文档 微信官方设计指导中关于胶囊按钮的描述 由此得知胶囊宽度87pt=116px,设置之后,的确能产生较好的兼容性效果 社区Q&A:自定义标题栏高度计算、在 navigationStyle: 'custom',苹果X和8兼容问题 注意某些方法、参数的兼容性,时刻关注官方更新信息 开一个项目采集设备的screenHeight,windowHeight,pixelRatio等信息到一个数据库中,或者微信可以提供这样一个数据库便于计算,亦或者微信优化自定义标题栏(譬如通知栏可以改变颜色但不要算在自定义范围内,给出胶囊宽高到通知栏距离到右侧屏幕边框距离等相关参数)
2018-07-31