微信小程序~App.js中获取用户信息
2023-09-11 14:19:07 时间
(1)代码:主要介绍下获取用户信息部分
onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId } }) // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码出 unionId this.globalData.userInfo = res.userInfo // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } })
onLaunch为小程序生命周期---小程序初始化
(2)获取用户数据
wx.getSetting({...})或者wx.openSetting({...})
开发者可以调用 wx.openSetting 打开设置界面,引导用户开启授权
参数:
obj.success 的成功回调函数参数:
wx.openSetting({
success:function(res){
}
})
或者
wx.openSetting({
success=>res{
}
})
AuthSetting
用户授权设置信息
scope | 对应接口 | 描述 |
---|---|---|
scope.userInfo | wx.getUserInfo | 用户信息 |
scope.userLocation | wx.getLocation, wx.chooseLocation | 地理位置 |
scope.address | wx.chooseAddress | 通讯地址 |
scope.invoiceTitle | wx.chooseInvoiceTitle | 发票抬头 |
scope.invoice | wx.chooseInvoice | 获取发票 |
scope.werun | wx.getWeRunData | 微信运动步数 |
scope.record | wx.startRecord | 录音功能 |
scope.writePhotosAlbum | wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum | 保存到相册 |
scope.camera | camera 组件 | 摄像头 |
代码:
// 获取用户信息 wx.openSetting({
/*接口调用成功的回调函数*/ success: res => {
/*success成功回调函数的参数:authorSetting对象*/
/*authSetting对象属性之一:scope.userInfo授权用户信息*/ if (res.authSetting['scope.userInfo']) { /*scope.userInfo(是否授权用户信息,对应接口 wx.getUserInfo)*/
wx.getUserInfo({ }) } } })
(3)获取用户信息
wx.getUserInfo(Object object)获取用户信息
参数:
object.success 回调函数的参数
// 获取用户信息 wx.openSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 必须是在用户已经授权的情况下调用 wx.getUserInfo({ success: res => { // globalData函数设置全局变量,方便其他页面调用。 this.globalData.userInfo = res.userInfo // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } })
globalData函数设置全局变量,详见下篇文章使用globalData函数设置全局变量
.
相关文章
- JS框架_(JQbar.js)柱状图动态百分比进度条特效
- Windows + IIS 环境部署Asp.Net Core App
- Windows Store App 应用设置存储
- Hybrid App技术批量制作APP应用与跨平台解决方案
- JS插件之——bootstrap-suggest.js
- 第三百七十六节,Django+Xadmin打造上线标准的在线教育平台—创建用户操作app,在models.py文件生成5张表,用户咨询表、课程评论表、用户收藏表、用户消息表、用户学习表
- Python flask @app.route
- 安卓逆向8-Frida-脱壳,使用引力播这个app
- [Node] Setup an Nginx Proxy for a Node.js App
- [PReact] Reduce the Size of a React App in Two Lines with preact-compat
- [AngularJS]1. Fisrt App, ng-app, Exprection{{}}
- [Next.js] Override the Default App Component in Next.js
- [React] {svg, css module, sass} support in Create React App 2.0
- uni-app:npm安装js-md5第三方库(hbuilderx 3.7.3 / npm 9.5.0)
- Spartacus 4.3.x 版本导入 Cart 到 App Module 构造函数的错误消息
- vue 的 render 函数的用法:new Vue({ render: h => h(App), }).$mount(‘#app‘)
- uni-app 前后端实战课 - 《悦读》学习笔记:【部署 php 环境】小程序开发实例教程4
- 适合做app的前端框架有哪些?webAPP&移动端App:react native、weex、flutter
- ios xcode 怎样模拟app被挂起(在后台被系统杀死) APP 的五种状态
- Android 12.0首次开机默认授予app运行时权限(去掉运行时授权弹窗)
- Android8.1 9.0 10.0 ResolverActivity.java多个app选择界面去掉始终保留仅有一次
- 〖Python 数据库开发实战 - Python与Redis交互篇⑯〗- 综合案例 - 新闻管理系统第二阶段完结 - “app.py“ 模块收尾及案例演示
- 个人或者企业怎么进行app开发?开发一款APP应用大概须要多少钱?
- JS:crypto-js实现AES加密解密
- 【JS高级】js面向对象三大特性之封装—如何创建对象_05
- 【JS高级】js之函数、重载、匿名函数、作用域及作用域链_03
- 原生js实现随机验证码HTMl-JS
- 太可惜了,4面字节跳动,我的软件测试工程师Offer竟被一道App测试“送分题”给拦截了