微信小程序遇到的坑

时间: 2018-12-02阅读: 3508标签: 小程序

小程序textarea组件字数限制问题  

解决方法:

<textarea name="content" maxlength='-1'></textarea>


scroll-view 中不能使用 textarea 组件 

swiper和swiper-item是继承scroll-view的,所以在他们里面使用textarea的时候会出现很奇怪的现象,比如placeholder错位。解决方法:

用view组件替换swiper组件,用微信小程序的wx.animation()实现点击切换效果 除此之外, 在 scroll-view 中也不能使用 map、canvas、video 组件。否则会出现很多奇怪的现象


input组件的问题

  • placeholder 文字与 input 的值重叠 暂无解决方法

  • 获取焦点 和 失去焦点 时,光标和文字跳动 暂无解决方法

  • 当 input 设置为居中对齐时,光标会出现在奇怪的位置 暂无解决方法

  • bindconfirm 事件在失去焦点时也会触发,类似于 blur 暂无解决方法

  • 对 input 做动画时,如果是获取焦点状态,会失效 暂无解决方案,因为 input 在获取焦点时是
    native 组件,失去焦点后改回 web 组件

  • type 为 idcard, digit 时并不是调用数字键盘 暂无解决方案,目前起作用的只有 number

  • 在input聚焦期间,不能做css动画,否则input中的placeholder会错位,如果动画和聚焦都想要的话,那么可以在动画完成之后,再设置聚焦



关于数据绑定的问题

小程序更新data后只是把数据的值更新,不会刷新页面,比如滑动的列表不会回到顶部,导致使用swiper有个小bug:

就是swiper的数据是后台请求的,可通过切换tab标签动态获取,如果在切换之前swiper处在第三张或者更多(比将要点击的tab下的swiper多),那切换后swiper会是空白,解决办法是,每次切换要手动初始化swiper的current    属性,使其停留在第一张。


关于生命周期的问题

生命周期函数不要写成箭头函数,否则this会取不到

 切换底部导航时页面不刷新问题,可以用onShow函数掉一次接口重新获取数据解决,或者写一个下拉刷新


图片预览问题

ios没有问题,安卓会黑屏,原因是预览的图片必须是http或https开头的url,相对路径会黑屏


背景图片不显示的问题

这应该是小程序的bug,解决方法:

1. 将背景图片转成base64   2.将图片放到服务器,使用url显示


关于picker组件

1. 触发弹窗时一定要点击在内容上才可触发,点击空白处无效,这个解决看具体需求,比如加个默认值之类的

2. 安卓和ios的样式不一样,如果对这个有要求建议使用第三方组件(如:有赞)


关于post请求

如果要传请求参数,header中要写这个 'content-type': 'application/x-www-form-urlencoded',官方文档说的 'content-type': 'application/json'这个,貌似不管用


小程序没有过滤器

可以用wxs解决,但是要处理传入的value undefined的时候,否则会报错,因为这个方法执行的快一些,数据还没有传过来,当数据传来后又执行一次,第一次很可能undefined


关于小程序码识别的问题

如果二维码识别的是小程序通过 navigate 跳转后的子页面,进入小程序后将回不到首页,因为小程序会认为这是首页,如果有可以回到首页的需求,我的解决办法是,识别后进入首页根据scene参数进行子页跳转


new Date跨平台兼容性问题

在Andriod使用new Date(“2018-05-30 00:00:00”)木有问题,但是在ios下面识别不出来。  因为IOS下面不能识别这种格式,需要用2018/05/30 00:00:00格式。可以使用正则表达式对做字符串替换,将短横替换为斜杠。

var iosDate= date.replace(/-/g, '/');


wx.getSystemInfoSync获取windowHeight不准确:

主要原因在于获取是时机,wx.getSystemInfoSync是在页面初始化的时候就计算了,基本上可以理解为是屏幕高度。所以,最好的方法是使用异步接口,并且在onReady函数中调用。

onReady() {
  wx.getSystemInfo({
    success({windowHeight}) {
      // todo
    }
  });
}


图片本地资源名称,尽量使用小写命名:

在解决iPhone X适配时,底部多余部分使用图片时

<image src="/imgs/iphoneX.png" mode="aspectFill">
路径是 src='imgs/iphoneX.png'></image>

发现在pc IDE上面可以显示出来,但是真机调试时,图片找不到,然后将图片名称改为iphonex.png真机调试就可以了

<image src="/imgs/iphonex.png" mode="aspectFill"></image>


无法获取UnionID的问题

login获取UID必须满足两个条件:

  • 把小程序和公众号都绑定在开放平台
  • 用户必须已经关注公众号

用wx.getUserInfo获取满足一个条件:

  • 把小程序和公众号都绑定在开放平台


wx.getUserInfo()接口更改问题

微信小程序最近被吐槽最多的一个更改,就是用户使用wx.getUserInfo(开发和体验版)时不会弹出授权,正式版不受影响。现在授权方式是需要引导用户点击一个授权按钮,然后再弹出授权。  


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1472

从VantComponent 谈小程序维护

在开发小程序的时候,我们总是期望用以往的技术规范和语法特点来书写当前的小程序,所以才会有各色的小程序框架,例如 mpvue、taro 等这些编译型框架

小程序websocket心跳库——websocket-heartbeat-miniprogram

在16年的时候因为项目接触到websocket,而后对心跳重连做了一次总结,写了篇博客,而后18年对之前github上的demo代码进行了再次开发和开源,最终封装成库。如下:在2020年也就是今年初,同事建议说可以考虑兼容一下小程序,心想也挺好的。

微信小程序_实现动画旋转的多种方式

三种办法实现小程序的动画效果: 每帧setData()、使用Animation实现旋转效果、使用keyfreams。在wxss中通过控制transform组件的属性,来实现旋转效果,我也是采用的这种方式,性能上面提示非常多

小程序跨页面交互的作用与方法

微信小程序的分包大小已经到达了 12M 大小,一方面说明小程序的确逐步为开发者放开更大的权限,另一方面也说明了对于某些小程序 8M 的大小已经不够用了

微信小程序通过保存图片分享到朋友圈

小程序内是不能直接分享到朋友圈的。所以只能通过生成图片,携带小程序二维码,保存到手机相册,让用户自己选择发到朋友圈。然后可以通过在小程序中识别二维码来进入小程序的指定页面

如何让10万条数据的小程序列表如丝般顺滑

某天闲着无聊想练一下手速,去上拉一个小程序项目中一个有1万多条商品数据的列表。在数据加载到1000多条后,是列表居然出现了白屏。看了一下控制台:

优雅解决微信小程序授权登录需要button触发

聊一聊最近的一个项目,这个项目是一个收书、售书的小程序,有商城、专栏、信息发布论坛等功能。虽然不是面向所有用户,但要求无论用户是否授权都皆可使用,但同时也要求部分功能对不授权的用户限制开放。

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

开发小程序的过程中踩的坑不可谓不多,而有些坑也实在是让人郁闷,不扒一扒难以平我心头之愤呐。

小程序的节流与防抖

在屏幕滚动与拖拽的时候,经常会用到一些持续触发的事件,而这类事件不可控触发频率非常高,大大影响了性能,而我们想要让其变得可控,就可以用到节流和防抖两种方案。

小程序web-view关闭后,页面音频没有关闭

在web-view的src中,引入了一个HTML5页面,这个页面有个自动播放的音频。在小程序中,点击右上角关闭小程序后,web-view页面中的音频依然会播放。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!