听说小程序开发月刊还是挺实用的~~
# 小程序 latest
# 小程序能力
# 「2.7.0 版本基础库」新增功能
- 相机组件新增逐帧数据接口,该接口可让开发者对相机摄像头捕捉到的图像进行实时地识别和处理,实现如实时美妆、文字识别等功能,详见《camera 组件》 (opens new window)。
- 新增富文本编辑器组件,用户可以方便地对图文进行编辑,实现更丰富的图文展示效果,可扫描以下小程序码体验,接入指引详见《富文本编辑器组件》 (opens new window)。
- TabBar 新增支持配置网络图片,方便开发者在不同节日、活动等场景下,更灵活地配置底部导航栏内的相应图标,详见《TabBar》 (opens new window)。
- 为了帮助开发者解决“刘海屏”的适配问题,新增查询手机安全区域功能,在安全区域中的内容可保证不被遮挡,详见《getSystemInfo》 (opens new window)。
- 为了提升用户对图片的操作效率以及快速“识别图中的小程序码”,在用户未进入图片预览模式时,也可以通过长按图片唤起图片的操作菜单,详见《image 组件》 (opens new window)。
- canvas 画布组件支持 WebGL,提升了图形渲染效率,可更流畅地展示 3D 场景和模型。
更多 2.7.0 版本基础库的新能力及详情,可查看《更新日志》 (opens new window)。
# 「微信开放社区」新增关注功能
微信开放社区新增「关注用户」功能,社区用户可以对自己关心的用户进行关注,成为这个用户的关注者,更方便看到该用户的动态。
例如关注下被删什么的
# wx.getWifiList 接口需获取用户位置信息授权
2019 年 5 月 17 日起新提交发布的版本若未获取用户位置权限,则在 android 平台上将无法正常调用 wx.getWifiList 接口。该调整策略在微信 android 客户端 7.0.4 版本生效。 更多详情请查看wx.getWifiList 接口需获取用户位置信息授权后使用 (opens new window)。
# 「小程序管理后台」新增 Source Map 文件下载功能
小程序管理后台-【运维中心】-【错误查询】新增线上版本 Source Map 文件下载功能,开发者可通过 Source Map 文件定位错误信息对应的源代码位置。
# 更新日志
- 社区问题反馈以及功能优化更新(05.06-05.10) (opens new window)
- 社区问题反馈以及功能优化更新(04.22-04.26) (opens new window)
- 社区问题反馈以及功能优化更新(04.15-04.19) (opens new window)
# 开发者工具
# 微信开发者工具支持 ES6+转 ES5
新版工具增加了增强编译的选项来增强 ES6 转 ES5 的能力,启用后会使用新的编译逻辑以及提供额外的选项供开发者使用。
- 使用 preset-env,支持最新的 ECMAScript 语法
- 共享 helpers 函数,默认放在项目@babel/runtime 目录,可通过项目配置文件配置
- 支持
async/await
语法,按需注入 regeneratorRuntime,目录位置与 helpers 函数一致 - 关于 polyfill,基础库中已经引入了大量的 es6 相关的 polyfill 可参考文档,增强编译下,新增:
Array.prototype.includes
(es7)、Object.entries
(es8)、Object.values
(es8)
更多详细能力请参考微信开发者工具 1.02.1905081 更新说明 (opens new window)。
这里补充两个容易踩的坑:
- 旧版开发者工具只支持 ES6 转 ES5,这里的 ES6 并不包括 ES7/ES8,所以
Object.entries
(es8)、Object.values
(es8)、async/await
这些不支持,需要自己编译。 - 微信开发者工具 1.02.1905081 已知 bug:
- 体验评分会卡死
- 带分包功能的小程序,预览后分包页面出现白屏
- 项目使用 babel 编译,在编译 async/await 时会生成 Promise,同时 Promise 里捕捉到的异常都没有处理。会导致 js 语法错误不能被 MP 平台监控,从而没法正常告警(也无法在 App.onError 里捕捉到)。使用开发者工具编译可能也会存在同样的问题,建议自行 hack Promise,加上 catch 把异常抛出或添加到 App.onError 里。
# 「小程序·云开发」新增了 HTTP API 支持
云调用新增了 HTTP API 支持,目前提供了云函数触发、数据库导入导出、文件下载上传删除、获取腾讯云 API 调用凭证等能力。欢迎大家体验及反馈。
# 「小程序·云开发」新增 消息推送 支持
云调用近期将新增 消息推送 支持,现已支持客服消息推送,物流等功能的消息推送后续将陆续推出,现在已经可以在内测版开发者工具中体验客服消息推送了(在云函数中接收客服消息和回复),可新建云开发快速启动模板然后查看里面的云调用客服消息示例,欢迎大家来体验~ 文档:
# 「小程序·云开发」新增免 SessionKey 获取开放数据
云调用近期将新增支持免 SessionKey 获取开放数据,现已经可以在内测版开发者工具上体验了(开放数据包括用户信息,分享信息,微信运动等),待基础库 2.7.0 发布完成即可在手机上使用,在内测版工具上可以选择 9.9.9 版本基础库使用,欢迎大家来体验和吐槽~
- 开放数据获取方式文档 (opens new window)
- 示例 getUserInfo 文档 (opens new window)
- 支持的 API 和组件有:wx.getUserInfo,wx.getShareInfo, wx.getWeRunData 以及 button 组件的 getUserInfo
# 其他
Typescript 能力: 最新的小程序官方 Typing 库更新了!新增 Component/云函数等支持!
- Git 地址: https://github.com/wechat-miniprogram/api-typings
# 小程序教程
# 社区精选文章
- 永远对微信小程序保持尊重——小程序心得体会和开发经验 (opens new window)
- 腾讯课堂小程序详情页开发总结 (opens new window)
- 有赞前端质量保障体系 (opens new window)
- 小打卡|如何组件化拆分一个 200+页面的小程序 (opens new window)
更多可以查看文章分享 (opens new window)。
# 最新踩坑 && Tips
wx.getLocation 无响应(既不会 success,也不会 fail,可能导致小程序不可用),在安卓上会偶现,和机型无关。 目前建议的解决方法是手动加个超时。
小程序授权获取实名信息文档:https://developers.weixin.qq.com/community/business/doc/000804439ac77080c8672c77451c0d。 同时文中 设置-接口能力 路径改为 开发-接口能力。
<picker>
组件,IOS 不支持 YYYY-MM-DD 的日期格式,而 picker 默认返回的格式是 YYYY-MM-DD,有日期转时间戳的场景的话,需要正则替换一下。 PS: H5 里也存在同样的问题。小程序做自适应客户端字体大小,目前需要通过wx.getSystemInfo (opens new window)接口获取 fontSizeSetting 字段,来调整样式。
- fontSizeSetting: 用户字体大小(单位 px)。以微信客户端「我-设置-通用-字体大小」中的设置为准
发布新的小程序后,终端用户手机里面还有老的小程序的缓存,可使用UpdateManager (opens new window)强制用户升级到最新版本。
小程序基础库版本兼容问题,可设置最低基础库版本:登录小程序管理后台,进入“设置->基本设置->基础库最低版本设置”进行配置。
- 在配置前,开发者可查看近 30 天内访问小程序的用户的基础库版本占比,以帮助开发者了解当前用户使用的情况。
- 上述设置需要在 iOS 6.5.8 或安卓 6.5.7 及以上微信客户端版本生效。太低版本不支持最低基础库版本设置。
# 结束语
在这个世界上,没有人能在所有事情上都与你看法一致,所以既然有人在与你在最重要的方面价值观相同,也与你有实践价值观的相同做法,那就要确保与这些人为伍。 --《原则》