小程序小程序开发大大小小的坑

Posted marcohorse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序小程序开发大大小小的坑相关的知识,希望对你有一定的参考价值。

1. 文本是数字类型会在底部增加空白间距?

解决方式:添加全局文本格式:
font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif;

2.wss无法使用background-image属性:

解决方式:使用相对布局添加image控件充当背景

解决方式:新版本的微信小程序使用了switchtab作为跳转的方法

4.在js文件的回调方法里面无法使用setData?

解决方式:当你使用了回调函数后,上下文环境已经改变,var that = this,使用自定义的变量来改变数据

5.page的js方法在那里写?

解决方式:在pages外面写,或者在外部写一个js方法,然后使用require引入

6.为什么我总是定位不到资源文件?

../,这个代表回退上一层,自己慢慢数

7.小程序的传值问题

传值分三种一种是点击事件,一种是跳转事件
点击事件,需要在wxml里面声明data-(变量名),然后在e-currentarget-dataset-(变量名)
跳转事件,在navigator的url后面补上变量名和对应的值,例如跳转到../../index/index,加上变量就是../../index/index?name=marco&sex=male
页面回调的传值有两种方式:1.现在是在通过app.js的全局来调用 2.获取上一个页面的page,通过page.setData来更新数据,不过,还是希望tx能够提供一种更优雅的方式吧

8.pages的取值问题

  1. data的值,需要在前面加上this.data.(变量名)
  2. 外部js里面的值,先导入js文件,var name = require(js url) 值为:name.value

9.target和currentarget的区别

用户进行点击事件,小程序会进行事件分发,先子控件,然后在分发到父控件
target是当前点击事件
currentarger是事件分发

10.小程序button的默认边框问题

因为button的css伪元素::after里面有一个border:1px solid rgba(0, 0, 0, 0.2),去掉就可以了

11.js里面的数据默认是64位的,所以自己小心

12.从网页里面获取到的数据可能是ISO或者其它类型的转码问题

实际上,一切都通常以内部的某种形式存储为Unicode,但不要进行。我假设你得到了标志性的”?¥?¤??”类型的字符串,因为你使用ISO-8859作为你的字符编码。有一个诀窍可以转换这些字符。针对ISO字符定义了用于编码和解码查询字符串的escape和unescape函数,而为UTF8字符定义了较新的encodeURIComponent和decodeURIComponent。
escape将扩展的ISO-8859-1字符(UTF代码点U + 0080-U + 00ff)编码为%xx(two-digit十六进制),而将U + 0100及以上的UTF码点编码为%uxxxx(%u,后跟four-digit十六进制)。例如, escape("?") == "%E5"和escape("あ") == "%u3042"。
encodeURIComponent percent-encodes将字符扩展为UTF8字节序列。例如,encodeURIComponent("?") == "%C3%A5"和encodeURIComponent("あ") == "%E3%81%82"。
所以你可以做:fixedstring = decodeURIComponent(escape(utfstring));
如果是发送请求的话,可以使用utfstring = unescape(encodeURIComponent(originalstring));

13.小程序尺寸单位问题

rpx:可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
rem:则是以640为设计

14,小程序遵循xhtml规范,html标签全部都是小写

小程序wxml在js传值的时候(即data-变量名的形式),变量名是不区分大小写的,可是js里面是区分大小写的,所以在wxml里面设置的变量,在js里面都以小写形式存在!然而在js传值wxml(即{{变量名}})的时候,是区分大小写的

15,小程序点击事件传递

点击事件的话,默认是会传递给上层的数据
所以,设置点击事件的时候,需要拦截阻止事件分发给下层布局,将longtap转成catchtap就可以了

16.小程序支付

微信小程序的appid和mch_id是相对的,签名的时候注意场景支付的不一样













以上是关于小程序小程序开发大大小小的坑的主要内容,如果未能解决你的问题,请参考以下文章

彼此间商城小程序开发解析

微信小程序开发中遇到的坑及解决办法

小程序开发注意的坑

小程序开发实践总结

小程序开发的坑

餐饮小程序开发