小程序开发采坑

1 .json文件中不能使用单引号

2.wx:for={{arr}} 模板传入参数如果用 this.data 里的参数
属性值 + 标签中属性值 需分别使用

A. {{paras}} + paras.item模式
B. {{…paras}} +item模式

3.使用Content-type来指定不同格式的请求信息
wx.request()其中 默认为GET请求 对应 header 中 ‘Content-Type’ 为’application/json’
而POST请求 对应 header 为 “application/x-www-form-urlencoded”

4.注意组件map外部父元素尺寸问题 地图demo 中 尺寸写在css中

5.页面加载时 初始化函数 onload 执行时不能 操作 this.data

生命周期说明 this.data加载 在 onload 之后 如果这样定义成功回调函数:

success:function(res){ … }

在 success 函数执行后 onload才结束 之后this.data进行加载 故而不能加载初始化数据

异步加载定义方法:

success:res =>{ … }

其中res为回调返回值

6.小程序数据接口地址必须使用https

7.小程序异步数据绑定

不能直接使用this.data因为异步操作的函数中作用域不包含this变量
也不能直接使用this.key = XXX 会造成只改数据层 不能 修改视图层
var object = this;
将类this与新定义的对象object绑定 在异步函数里 object可以被操作或引用

在需要修改data的地方使用 要修改的数据key值不同 互不影响

object.setData({
key:val
})

8.初始化变量必须使用 var 或 const 否则报错

9.标签属性 逻辑语句 中注意不要有空格或其他字符串 会被解释成string 当做true来运行

如 wx:if=”{{false}} ” 条件后面有空格会被当做true解释

10.支付API变量使用小写字母加下划线组合,微信支付使用驼峰法定义变量
万恶的appId “I” 居然是大写

11.再说授权

步骤一涉及app.js文件
步骤二三四涉及a.js文件 a.wxml和组件页面z.wxml

步骤一 :app.js写入静默授权
前台传入js_code (本次登录凭证)
服务端 用js_code换取openid 如果没有用户注册 有用户直接返回结果
附带用户是否授权信息
存入本地数据localstorage

具体页面a.js
步骤二 : 设置组件浮层
添加z.wxml组件 提示窗 提示用户授权设置授权按钮
浮层实现与否绑定 a.data.auth

步骤三 : 设置加载方法
添加全局方法 在onload中 判断本地数据中是否授权 操作auth属性控制组件浮层是否显示

步骤三: 设置授权方法
点击授权按钮 拿到用户授权结果 如果用户同意授权
启动该全局方法 注意变量传入本页数据 this
在全局方法中操作a页数据this.data.auth和本地数据

12.未发布小程序二维码 扫码后提示未发布
未发布小程序二维码只能在微信开发工具中 通过 二维码变异进入对应页面进行调试

13.微信原生组件 与 需要用户主动点击按钮的 带有授权用途的 功能冲突

如微信弹窗 底部菜单等 不能触发 带有open-type属性的动作 不能绑定对应触发方法

14.配置模板消息url 微信文档没有说明 验证token之后应该作何反应
微信公众号 是返回token
小程序返回 返回$_GET[‘echostr’]

15.小程序 IOS、安卓 解释页面跳转函数不一样
IOS 关闭页面后 不执行该页面的其他跳转函数 即卸载了该页面
安卓 关闭页面后 执行剩余其他函数

造成的结果是IOS在关闭上一层页面和跳转到新页面 只能选一项 而且跳转到新页面没有切换页面的动画效果

16 IOS渲染bug
hidden属性为真的元素 在IOS渲染没有被完全隐藏 会出现在左上角 留出一条缝
尽量使用wx:if避免此问题

17 canvas画图 – 开发工具错误
设置文字 文字大小 开发工具识别居然小数点 真机不认识 造成文字很小

18 服务短消息 – 开发工具错误
通过开发工具 支付扫码获取的prepay_id不能发送服务短消息 会提示41028 form_id不正确

发表评论

电子邮件地址不会被公开。 必填项已用*标注