微信小程序里碰到的坑和小知识
本文作者:dongtao 来自:授权地址
本人低级程序员,以下bug不能确保在其它地方可以以相同的原因复现.
同时, 出现很多bug的原因是小程序的基本知识还有编码的基本功不到位造成
路还很长,共勉
目录
- 资源 (资源加载时候会出现的问题)
- API (api在使用中有可能会碰到)
- 工具 (模拟器和真机调试有可能出现的问题)
- 兼容 (在真机上调试时候有可能出现的问题)
资源篇
- 已解决
在app.wxss里设置了图片路径,在IDE里正常无误,但是在手机上是没有显示的,
解决办法:(这段话位置放那么偏~ )问题描述
代码截图 app.wxss.png模拟器里的效果.png手机里的效果.png - 已解决
更新: 以下在模拟器里是可以的但是在手机上是无效的! 原因参考第一条app.wxss里的图片路径要按照组件文件夹的图片路径来写//用最上面的1来距离
这个样式最开始在一个pages文件夹里,所以图片路径是 ../../imgs/XXX,
按理说如果把这个样式提取到外面的app.wxss里的话 图片路径应该改为./imgs/XXX..
然而改成这样之后在模拟器都无法生效. - 已解决
在index点击跳转到login时候,标记三的部分没有写page()进行实例化,导致2 的页面加载时候没加载相应的js
, 会报以下错
API 篇
- 未解决
用小程序自带的底部导航组件的话, 没法实现跟微信原生底部小红点或者消息提醒的功能 - 已解决
picker使用时候 picker组件里必须要有内容,放一个值为空的变量并没有作用这里我如果只保留{{age}}的话, 这个组件是无法触发的.
组件里面必须至少要有1个字符(哪怕是1),这个组件才可以被触发,但是空格是不行
放一个宽高为100%,display:block的view,如果view里没内容,view是不会显示的, 必须要在view里放东西,哪怕一个数字也行.
然后这里只能写成了这种(原本需求是这个日期选择器默认状态是空,) - 已解决
没仔细考证,网上说图是没法批量上传的,所以这里只能用单个上传,成功后递归调用来解决批量上传.
以下代码有一个错误,第十会说到文件上传的另一个问题 - 已解决
textArea 没有bindinput事件之前描述:
有个业务场景是检测多行输入框,如果有值,按钮立马变成可点击.
然而textarea是没有input事件的, 最后只能用blur进行失去焦点的时候监听
解决办法:
blur的在电脑上的体验如描述所说,可是真正在手机上运行的时候, 体验和需求中的一致... - 已解决:
wx.uploadFile 中formData参数问题:- 这个接口的formData 微信在处理的时候 已经用formData进行了包装. 所以这里是没有必要自己用formData来传递参数的(比如注释掉的代码)
- 扯淡的是, 传递了form格式的参数之后 在浏览器和安卓下, 接口是可以正常使用的, 并不会报什么错
- 但是! 在ios里 会直接报错, 不是运行异常,是直接红色的报错.!!!!!
工具
- 已解决
结论:
手机预览的时候会进行域名合法校验的, 模拟器里的关闭域名校验只是对模拟器有效
问题描述:- 模拟器里开启"开发工具不开启域名校验"之后在模拟器里是可以用http的,但是当在手机上预览的时候http并不能用, 模拟器开的这个 只负责在模拟器里.
- 如果不开启的话, 并且在APP配置信息里,没有设置合法域名的话, 在模拟器里是可以使用图片上传之类的接口,但是在手机上并不可以
兼容
- 已解决
在手机上 在外部容器给定高度的情况下,容器里的input的高度设100%在ios上是无效的.但是在模拟器和安卓下面是正常的(具体规律还没掌握清楚) - 未解决
输入法掩盖textarea, 这个bug有一半的概率会出现
转载地址:微信小程序联盟
微信小程序里碰到的坑和小知识的更多相关文章
- 微信小程序里如何使用npm?小程序集成友盟举例
1.执行npm初始化指令 小程序根目录,命令执行如下指令: npm init 执行后会让加载项目初始信息,具体截图如下: 2.执行安装npm包指令 在这我们举个例子,以接入友盟统计SDK为例,执行命令 ...
- 微信小程序里如何用阿里云上传视频,图片。。
纯手写,踩了半天多的坑干出来了... 网上也有对于阿里云如何在微信小程序里使用,但是很不全,包括阿里云文档的最佳实践里. 话不多说上代码了. upvideo(){ var aliOssParams = ...
- 微信小程序里使用 Redux 状态管理
微信小程序里使用 Redux 状态管理 前言 前阵子一直在做小程序开发,采用的是官方给的框架 wepy , 如果还不了解的同学可以去他的官网查阅相关资料学习:不得不说的是,这个框架确相比于传统小程序开 ...
- 小程序红包开发跳坑记 微信小程序红包接口开发过程中遇到的问题 微信小程序红包开发
现在做小程序的越来越多,商家推广也是一个瓶颈,谁不发点红包,都很难找到人来用你的微信小程序了.于是不管你开发什么小程序功能,你或多或少都要用到小程序来发红包吧. 我们自己之前做公众号发红包,做了两三 ...
- 在微信小程序里使用 watch 和 computed
在开发 vue 的时候,我们可以使用 watch 和 computed 很方便的检测数据的变化,从而做出相应的改变,但是在小程序里,只能在数据改变时手动触发 this.setData(),那么如何给小 ...
- 微信小程序里实现跑马灯效果
在微信小程序 里实现跑马灯效果,类似滚动字幕或者滚动广告之类的,使用简单的CSS样式控制,没用到JS wxml: <!-- 复制的跑马灯效果 --> <view class=&quo ...
- 如果解决小程序1024kb渲染之坑
问题: 在小程序开发中如果有那么个场景和操作步骤,获取商品下拉列表商品列表data为goodsList 当从后台获取数据response.data.list,通常我们会setData({goodsLi ...
- 小程序里打开app的实现过程
之前开发过类似得需求,也踩了一些小坑,在这里和大家分享下,毕竟这样的需求也不在少数,基本上产品后期都会有这样的需求: 官方说明 因为需要用户主动触发才能打开 APP,所以该功能不由 API 来调用,需 ...
- 微信小程序再次升级:卖货小店小程序不用开发也能进行交易
卖货小店小程序,不用开发一行代码也能帮商家实现交易功能,这个真是几家欢喜几家愁啊,对于开发小程序商城的公司来说,这个无疑是一个雷霆之际,第一反应就是,这下完了,小程序自身就支持交易,那还要我们这些第三 ...
随机推荐
- java多线程(精华版)
在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...
- 高性能网站架构设计之缓存篇(5)- Redis 集群(上)
集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节 ...
- ILspy反编译工具
简介 ILspy是一个开源的.net反编译软件,使用十分方便. 开发原因 之所以开发ILspy是因为Red Gate宣布免费版的.NET Reflector(同样是反编译软件)将会在2011年2月停止 ...
- 【WPF】如何把一个枚举属性绑定到多个RadioButton
一.说明 很多时候,我们要把一个枚举的属性的绑定到一组RadioButton上.大家都知道是使用IValueConverter来做,但到底怎么做才好? 而且多个RadioButton的Checked和 ...
- Windows10 UWP开发 - 响应式设计
Windows10 UWP开发 - 响应式设计 本篇随笔与大家简单讨论一下在开发适配不同分辨率.宽高比的Windows10 Universal App布局时的可行方式与小技巧.经验均从实践中总结, ...
- 系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现 ...
- Unity3D ogg下载并播放
那天说了c#不好弄ogg和mp3的解码,然后就发现打脸了. 找到了一些开源的解码器,由于ogg的音质容量比要明显好于mp3,主要弄ogg的播放. 由于自带解码器,可以实现全平台下载并播放,甚至可以实现 ...
- WaterfallTree(瀑布树) 详细技术分析系列
前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb, ...
- Git学习笔记(4)——添加远程仓库,克隆远程库,以及库的推送
本文记录了远程库的连接和库的克隆和推送. 远程仓库简介 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且 ...
- Java面试(1)-- Java赋值表达式
1 class Demo01{ 2 public static void main(String[] args){ 3 //赋值运算符 = 4 5 //例1 6 int a = 1; 7 System ...