微信小程序开发中遇到的坑

目录

1、clearInterval不起作用

2、设置background: linear-gradient(180deg, #FCF8F5 0%, #FCF8F5 99.9%, transparent 100%);解决元素底部有黑线的问题。但是在ios中不起作用。

3、wx.createAnimation,设置的动画只能执行一次

4、swiper在苹果手机上显示不全(打开就这样),安卓手机也会出现这种情况(反复操作后),如图

5、微信小程序跳转报错errMsg: “navigateTo:fail webview count limit exceed“(反复操作页面时出现)

6、ios和安卓时间计算不兼容问题

7、手机获取不到存在本地openid,主要表现在苹果手机

8、onUnload带来的坑


1、clearInterval不起作用

原因:创建了重复的定时器

解决方案:在创建定时器前先进行清空

2、设置background: linear-gradient(180deg, #FCF8F5 0%, #FCF8F5 99.9%, transparent 100%);解决元素底部有黑线的问题。但是在ios中不起作用。

原因:ios不兼容

解决方案:background: linear-gradient(180deg, #FCF8F5 0%, #FCF8F5 99.9%, rgba(255,255,255,0) 100%);

3、wx.createAnimation,设置的动画只能执行一次

原因:动画只执行有差值的动画

解决方案:执行完一次动画后,过几秒在回归到初始状态即可

let animation = wx.createAnimation({
    duration: 2000,
    timingFunction: 'ease',
    delay: 0,
    transformOrigin: 'center center 0',
})
animation.opacity(0.5).rotate(360).step({
    duration: 3000
})
setTimeout(() => {
    animation.rotate(0).opacity(1).step({
       duration: 10
    })
}, 2000);

4、swiper在苹果手机上显示不全(打开就这样),安卓手机也会出现这种情况(反复操作后),如图

原因:swiper和swiper-item加了行内样式

解决方案:去掉行内样式

5、微信小程序跳转报错errMsg: “navigateTo:fail webview count limit exceed“(反复操作页面时出现)

原因:wx.navigateTo以及 < navigator >组件实现页面跳转,最多只能是五层。当页面路径大于五层,超出了限制,则会报错。

 解决方案:使用wx.redirectTo

6、ios和安卓时间计算不兼容问题

原因:iOS只支持2020/01/01 这种日期格式,不支持2020-01-01这样的格式

解决方案:判断手机系统,如果是ios的就吧时间转换为2020/01/01这种格式

let platform;
wx.getSystemInfo({
   success: function (res) {
      platform = res.platform
   }
});
this.platform = platform

let inDate = 2023-06-06
if (this.platform == 'ios') {
    inDate = inDate.replace(/-/g, '/')
}

7、手机获取不到存在本地openid,主要表现在苹果手机

原因:猜测可能是因为异步导致的

解决方案:先判断是本地是否有openid,如果没有过200s在获取一次

 

8、onUnload带来的坑

描述:在A页面的onUnload中设置跳转到B页面(wx.reLaunch({ url: b })),A页面退出(这个退出必须触发过onUnload中设置的页面跳转事件)后,通过扫码进入A页面,发现A页面闪烁下,直接进入B页面。(需要执行多次)

可能原因:官方没有答复,但是感觉这篇博客讲的比较有道理,可以解释的通微信小程序使用onUnload事件遇到的问题总结_童颜不一样的博客-CSDN博客

大概就是说,进入A页面后,小程序会有一个缓存,当你离开在进入时会先清空缓存,这是就会调用onUnload方法直接跳转到B页面。

解决方案:跟上边的博主一样,做了一个参数的判断,因为我的返回按钮是自定义的,所以设置了一个变量,只有在点击返回按钮时不会调用onUnload中得跳转方法,这样就不会导致多次调用onUnload。然后问题就解决了。

如果有那位朋友更清楚出现这个问题的原因,欢迎留言。

猜你喜欢

转载自blog.csdn.net/qq_41687299/article/details/131050986
今日推荐