微信小程序开发常见问题(七)

知晓程序员,专注微信小程序开发的程序员!

一、判断小程序版本号

小程序的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而已~

往期回顾

1.零基础入门小程序 & 实战经验分享

2.小程序“功能直达”内测,你读懂了什么?

3.谈谈小程序中返回上一页面逻辑

4.小程序如何区分转发好友和转发群

5.微信小程序开发常见问题(六)

本文分享自微信公众号 - 知晓程序员(bainaweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

H5前端性能测试快速入门

前言 说到H5测试,对于做WEB测试的同学来说再熟悉不过了,它包括页H5功能测试,前端性能测试,浏览器兼容性能测试,以及服务端性能测试。那本文谈到...

35360
来自专栏微信小程序开发

微信小程序开发常见问题(四)

知晓程序员,专注微信小程序开发的程序员! 一、小程序不同页面之间的传值方式 a、URL传值 这种方式最常用,比如: wx.navigateTo({ url...

44450
来自专栏张戈的专栏

Infinity New Tab:重新定义你的Chrome新标签页

Infinity new tab 是一款实用又清新的 Chrome(谷歌浏览器)新标签页功能扩展,可以完美替代默认的新标签页。受插件作者邀请,我特意安装体验了一...

369120
来自专栏知晓程序

「大众点评点餐」小程序开发经验 05:解析开发工具

周中坚,美团点评工程师,4年 Web 前端开发经验,主要负责过会员卡、外卖、预订、商家平台等业务的前端开发,现在是美团点评点餐团队的一员。

21130
来自专栏杨逸轩 ' sBlog

什么是静态和动态网页?

38470
来自专栏deepcc

链接中 href='#' 和 href='###' 的区别以及优缺点

359120
来自专栏腾讯NEXT学位

前端、设计师福利再升级:用FSP彻底拥抱中文WebFont时代

24820
来自专栏古时的风筝

如何应用Font Awesome矢量字体图标

Font Awesome 是一套专门为 Twitter Boostrap 设计的图标字体库。这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括 Twit...

26060
来自专栏python+iOS学习交流

7年iOS架构师教你如何快速提高并掌握 iOS开发核心技能

首先你要花点时间针对objective-c语言的学习;毕竟这个是iOS开发的基础(你也可以尝试用Swift,但此项目只是针对OC),编程套路其实都是差不多,多写...

17810
来自专栏腾讯开源的专栏

【开源公告】高性能的图片框架 LKImageKit 正式开源

LKImageKit LKImageKit 是一个高性能的图片框架,包括了图片控件,图片下载、内存缓存、磁盘缓存、图片解码、图片处理等一系列能力。合理的架构和...

41040

扫码关注云+社区

领取腾讯云代金券