(2018-09-07)为了优化用户的使用体验,平台将回收“使用 wx.getUserInfo 接口直接弹出授权框”以及“使用 wx.authorize 接口直接申请提前授权用户信息”的能力,开发者需要使用组件方式唤起登录授权弹窗。
2018年10月10日后发布新版本的小程序,将无法在线上版本中使用接口直接弹出授权框。开发者可结合平台设计建议,提前做好兼容,合理使用微信登录能力。
- 能力调整背景
- 怎么合理使用微信登录能力
- 小程序登录流程设计建议 Continue reading
(2018-09-07)为了优化用户的使用体验,平台将回收“使用 wx.getUserInfo 接口直接弹出授权框”以及“使用 wx.authorize 接口直接申请提前授权用户信息”的能力,开发者需要使用组件方式唤起登录授权弹窗。
2018年10月10日后发布新版本的小程序,将无法在线上版本中使用接口直接弹出授权框。开发者可结合平台设计建议,提前做好兼容,合理使用微信登录能力。
微信小程序向原数组添加元素,微信小程序向原数组追加元素
data 是回调返回的数据
formatTimeTwo() 把时间戳转为格式化日期时间
list 是 this.data.list
concat() 合并覆盖this.data.list原有数组元素 Continue reading
微信小程序修改全局变量的方法
0 1 2 3 4 5 6 7 8 9 10 11 12 |
// login.js let app = getApp() Page({ ... login: function (){ ... let uid = wx.getStorageSync('userId') // 获取本地存储信息 app.globalData.hasUserInfo = true // 设置全局变量 app.myToast() //全局方法的执行 ... } ... }) |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
js页面 //创建节点选择器 var query = wx.createSelectorQuery(); //选择id var that = this; query.select('.every').boundingClientRect(function (rect) { // console.log(rect.width) that.setData({ height: rect.width + 'px' }) }).exec(); wxml页面 <view class='every' style='height:{{height}}'></view> |
微信小程序报错:小程序使用wx.navigateTo()接口,由页面A跳转到页面B时,跳转失败,报文是navigateTo:fail can not navigateTo a tabbar page
原因是B页面已经加入到app.json中的tabBar项做为标签页了。
两种解决办法:
一、删除app.json中的tabBar项下的B页面,即B页面不能做为标签页面;
二、另建一个不加入app.json中tabBar项下的页面。
使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url var options = currentPage.options //如果要获取url中所带的参数可以查看options 可以写成工具函数放到utils中: /*获取当前页url*/ function getCurrentPageUrl() { var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url return url } /*获取当前页带参数的url*/ function getCurrentPageUrlWithArgs() { var pages = getCurrentPages() //获取加载的页面 var currentPage = pages[pages.length - 1] //获取当前页面的对象 var url = currentPage.route //当前页面url var options = currentPage.options //如果要获取url中所带的参数可以查看options //拼接url的参数 var urlWithArgs = url + '?' for (var key in options) { var value = options[key] urlWithArgs += key + '=' + value + '&' } urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) return urlWithArgs } module.exports = { getCurrentPageUrl: getCurrentPageUrl, getCurrentPageUrlWithArgs: getCurrentPageUrlWithArgs } |
微信小程序引用SDK正确操作数据库方法:
0 1 2 3 4 5 6 7 8 9 10 11 |
// 使用wafer-node-sdk导出的mysql访问接口 const { mysql } = require('../qcloud') module.exports = async (ctx, next) => { await mysql('cSessionInfo').select('*').then(res => { ctx.state.code = 0 ctx.state.data = res }).catch(err => { ctx.state.code = -1 throw new Error(err) }) } |
注意:
1、必须使用await,因为数据库获取是异步返回的,此处折腾了好久,刚开始不知道是异步的,总获取不到信息
2、使用await的情况下,必须使用async,否则会报错
**如果不使用await,打印数据库查询结果为如下形式: Continue reading
微信小程序更新api后,wx.getUserInfo在开发和体验版本都不能弹出授权窗口。微信小程序文档说明:
注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type=”getUserInfo”></button> 引导用户主动进行授权操作
对此,给出以下解决方案。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
wx.getUserInfo({ withCredentials: true, success: function(res) { //此处为获取微信信息后的业务方法 }, fail: function() { //获取用户信息失败后。请跳转授权页面 wx.showModal({ title: '警告', content: '尚未进行授权,请点击确定跳转到授权页面进行授权。', success: function(res) { if (res.confirm) { console.log('用户点击确定') wx.navigateTo({ url: '../tologin/tologin', }) } } }) } }) |
调取该方法失败后跳转到授权页面。
授权页面加入
0 |
<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button> |
并在js中,加入这个方法
0 1 2 3 4 5 6 7 8 9 10 11 |
bindGetUserInfo: function(e){ var that = this; //此处授权得到userInfo console.log(e.detail.userInfo); //接下来写业务代码 //最后,记得返回刚才的页面 wx.navigateBack({ delta: 1 }) } |
至此,即可完成引导用户手动授权的过程。解决此次更新api所带来的问题。
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息:
一、小程序:
1、使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。
详情参考文档:
https://developers.weixin.qq.com/miniprogram/dev/component/button.html
2、使用 open-data 展示用户基本信息。
详情参考文档:
https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html
二、小游戏:
1、使用用户信息按钮 UserInfoButton。
详情参考文档:
2、开放数据域下的展示用户信息。
详细参考文档:
https://developers.weixin.qq.com/minigame/dev/document/open-api/data/wx.getUserInfo.html
请各位开发者注意及时调整接口。