大家好,上班的日子总是过的那么快,夹杂着一个多请了四天假的国庆节,转眼距离上篇博文又过去一个多月了,惭愧啊。之前萍子写过一篇【小程序跳H5页面】的博文,说来也是无心在结尾的时候,回想那些被小程序折磨的不成人样的日子,就写了句‘那天想不开了,就总结一篇小程序坑集’,可是码字者无心,看文者有意,有猿留言让我总结一下,可能想让我早点想不开吧,哈哈哈,那好吧,我尽量回忆回忆,很多之前遇到的没及时的总结都已经忘记了,所以我把这篇博文定为持续更新,一下子我是真想不起来多少,毕竟年纪大了,还请各位谅解哦……
首先我先写之前在挣扎着想要总结,却没能坚持下来的,记在笔记本上的几条:
小程序跳转页面带参
详情:跳转页面需要带参的时候,如果字符串中含有“=”号,会影响传值。
解析:我们都知道小程序跳转页面,绝大多数的情况,我们需要传递的参数都是拼接在url后面的,那么参数名跟值之间是用“=”号连接,所以如果我们传的参数值里面包含“=”号,它会自动以等号分开变成两个字段,所以会出错。
解决:在传参的时候,如果参数值中含有“=”,那么我们可用十六进制“%3D”代替,转过去以后再转换回来即可。
小程序实现倒计时
详情:在小程序中实现一个倒计时问题的时候,可是被坑屎了,之前没深入测试的时候还没发现,后来到了发布阶段认真测试发现怎么安卓手机和苹果手机有8个小时的时差,那可劲造吧,各种试也没发现自己写的亲代码有啥问题,真是痛苦了好久。
解析:计算倒计时的时候,取值是取得后台返回的时间对象,然后自己去计算的,这样就会造成8个小时误差的问题。
解决:让后台在返回的时候就返回时间戳,然后前端再进行计算就不会有问题。
此处插两个H5的坑【突然想起来的】
具体详情可见我得另外的博文:
new Data(date).getTime()的兼容问题
H5实现拍照及相册图片上传
以上两点是属于H5中安卓和苹果的兼容问题。
小程序转发分享传参
详情:在转发传参之前,这写参数就是由其他页面传递过来的,那么在进行转发传参的时候,再次进行传参会出现问题。
解析:在转发传参的时候,如果传递的参数在之前的options中是存在的,这个时候会出现传不过去或者即使传过去了值也不对的情况。
解决:在传参之前,先把之前赋过值的参数进行清空,再赋对应的值进行操作就解决了。
自己写的遮罩层无法遮盖 textarea组件placeholder
这个详情和解析就没必要说了哦。
解决:弹出遮罩层的时候把textarea组件隐藏,关闭遮罩后重新显示textarea组件即可。
【11.08更新】text组件设置长按复制手机号码的问题
详情:很简单的,只写<text selectable='true'>填写测试手机号</text>
这个组件,那么在测试的时候,长按是可以复制粘贴的,但是有的时候可能按住的时间不够就松手了,那么问题就来了。。
解析:按住的时间不达到长按的要求,或者就是单纯的点击一下,部分安卓手机,会跳转到系统拨打电话的界面,暂时苹果手机没发现有这个问题。
解决:首先现在这个问题还没能解决的了,但是我已经在社区中提问官方的人了,待他们回复或者是优化;然后就是期间我尝试过其他的办法,也没能解决的了,比如在需要复制的手机号后面拼接上多余字符然后隐藏调等,但是并没有什么效果,所以静待官方回应,他们回复了,我会及时更新上来。
替换解决方案:小程序有提供的复制文本的api,实在是需要的话,我们可以用之替换,具体的代码如下:
wx.setClipboardData({
data: 131********,//要复制的手机号
success:(res)=> {
console.log("shezhiCopy:",res);//{errMsg: "setClipboardData:ok"}
}
})
这样就可以了,而且完成复制之后,不能自己添加提示框,它会自动弹出“内容已复制”的弹框,还是很方便的。
除了以上以外,我还发现有很多开发者工具支持的JS方法其实在手机上测试的时候发现是不支持的,也是很坑,之前没真机的时候明明一切是那么完美,具体我遇到的我也忘记了……忘记……记了……
今天就先这样,其他的我遇到了或者想起来了会持续过来更新哒,小伙伴们有遇到什么让人咬牙切齿的坑,也要分享给我哦,我们毕竟是难兄难弟难姐难妹,要多多照应才是呀。
最后我还想说一下,有关于坑集这个东西,也并不是万能的,就比如说对于我来说很坑但是你可能觉得是很平常的问题,反之亦是,所以我总结的也只是我遇到的一部分,我们大家有类同的是荣幸,互相借鉴少走弯路,如若这里没有你想要的,也请记得分享出来哦,一起摸爬滚打,前进…进~或者有啥困惑的可以留言,萍子定当知无不言言无不尽。