小程序开发中踩坑问题记录

欢迎大家补充

1.时间

问题:判断时间是否超过今天,new Date('2022-06-10 ') < new Date(),模拟器没错,但是在iOS上居然是false。

原因:日期格式年-月-日 在ios不兼容,得先把日期转为年/月/日才行

解决办法:'2022-06-10 '.replaceAll('-', '/')

2.disableTouch

问题:写弹窗的时候,不给弹窗加disableTouch,弹窗下的区域可滑动,但是加上disableTouch,如果弹窗里需要有滑动的地方也滑不了了

原因:disableTouch禁止掉整个加disableTouch的区域的所有滑动事件

解决办法:1》加disableTouch后,在需要滑动的地方用scroll-view

                  2》动态设置disableTouch的值

3.flex布局

flex布局设置子元素间距,用gap、column-gap、row-gap;安卓手机不兼容

4.\n换行不起作用

在css中添加white-space: pre-line;

5.requestSubscribeMessage

wx.requestSubscribeMessage()执行了,不报错,不弹框,是因为勾选了那个不再询问了,就不会弹窗了

6.InnerAudioContext.onTimeUpdate再次调用不触发(微信小程序bug)

发生原因:由于音频加载导致 onUpdateTime 失效,(比如调用 seek的时候,触发了音频自动加载)

总结:由于使用 innerAudioContext.paused(比如:打印) 可以将onUpdateTime生效,所以只需要判断在什么情况下使用innerAudioContext.paused,由于每次音频加载完毕都会触发onCanPlay,所以加在此回调中即可

解决方案:innerAudioContext.onCanPlay(()=>{ console.log(innerAudioContext.paused) })

其它:楼上说在seek后加setTimeout(() => { console.log(innerAudioContext.paused) },100),也可以解决,由于seek后音频加载时间不固定,100毫秒内如果没有加载完毕,仍然无法触发onUpdateTime,所以加在onCanPlay中更加准确。

猜你喜欢

转载自blog.csdn.net/animatecat/article/details/125527844