微信的”小程序”正式上线一周时间, 相关的话题持续升温. 与此同时, 支付宝开发的”小程序”也随即曝出, 互联网巨头们争先恐后的抢占市场, 闹得现有的”APP”岌岌可危的样子. 针对如此炙手可热的小程序, 经过各种途径的深入了解, 总结出来的小程序开发40个注意点, 供大家参考!
1.为什么 js 脚本中不能使用 window 等对象
由于小程序的页面脚本逻辑是在 jscore 中运行, jscore是一个没有对象窗口的环境, 所以不能在脚本中使用 window, 也无法在脚本中进行文档操作. 既没有 window对象和 document对象, 这也是 zepto/jq 无法使用的原因.
下面插播: 什么是 jscore
JavaScriptCore是苹果 Safari浏览器的 JavaScript引擎,后来苹果开放了这个 JavaScriptCore框架, 该框架让 Objective-C和JavaScript代码直接的交互变得更加的简单方便; JavaScriptCore是 webkit的一个重要组成部分,主要是对JS进行解析和提供执行环境, 而在 JavaScriptCore中, JSContext就为其提供着运行环境.
无法打开页面
微信限制一个小程序同层级下最多同时打开5个页面, 即同一个门最多只能爬到5楼, 超过就无法正常打开了, 尽量避免或者使用销毁式跳转,即
3.为什么上传不成功
微信为了提升体验流畅度, 编译后的代码包大小需要小于1MB, 大于1MB的代码包上传失败
4.微信小程序对ES6的支持程度
promise工具目前尚不支持,fetch客户端不支持
的POST方法传参数服务器接收不到数据
的 content-type默认为“‘application/json”, 如果服务器没有用到 JSON 解析的话, 可以把 content-type设置为 unlencoded. 即:
wx.request({
url: '', //仅为示例,并非真实的接口地址
data: {
x: ''
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function(res) {
console.log(res.data)
}
})
x-www-form-urlencoded的编码方式把数据转换成一个字串(name1=value1&name2=value2…)
6.小程序不支持热更新
微信不支持开发者自行更替,
暂时不支持打开小程序
8.小程序内不支持长按保存图片或者分享图片
9.手机提示内部错误,内存占用过多
小程序页面的预加载, 列表中图片渲染的太多. 尽量避免或者使用懒加载
10. picker组件中的文字大小不支持修改
11. IOS和安卓在一些接口的回调不一致, 例如支付接口, 用户取消支付后, IOS回调 complete方法, 安卓回调 fail方法 ,官方文档也没有任何这方面的说明, 类似的还有图片选择接口等.
总结: 小程序作为新生产物, 其自身还有很多的问题, 官方也在不断的修改, 完善当中. 因此大家还是要持续关注官方文档的变化, 以及研究大神们的作品.