uni-app之APP和小程序微信授权方法
uni-app 介绍
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。
适用平台:Android、iOS、微信小程序。实现了一套代码,同时发布到Android、iOS、微信小程序。
参考官方:https://uniapp.dcloud.io/
APP微信授权
检测服务商
检测手机上是否安装微信、QQ、新浪微博等。
uni.getProvider({ service: 'oauth', success: function (res) { console.log(res.provider); }});
授权登录
获取openid,(unionid)等uni.login({ provider: 'weixin', success: function (loginRes) { console.log(JSON.stringify(loginRes)); }});
获取用户信息
uni.getUserInfo({provider: 'weixin',success: function(infoRes) {console.log('-------获取微信用户所有-----')console.log(JSON.stringify(infoRes.userInfo));}});
示例代码
appLogin: function() {uni.getProvider({service: 'oauth',success: function(res) {console.log(res.provider);//支持微信、qq和微博等if (~res.provider.indexOf('weixin')) {uni.login({provider: 'weixin',success: function(loginRes) {console.log('-------获取openid(unionid)-----');console.log(JSON.stringify(loginRes));// 获取用户信息uni.getUserInfo({provider: 'weixin',success: function(infoRes) {console.log('-------获取微信用户所有-----');console.log(JSON.stringify(infoRes.userInfo));}});}});}}});},
小程序微信授权
获取用户基本信息
为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息。
小程序使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。
参考官方:https://developers.weixin.qq.com/miniprogram/dev/component/button.html
示例代码:
wxGetUserInfo:function(res){if (!res.detail.iv) {uni.showToast({title: "您取消了授权,登录失败",icon: "none"});return false;}console.log('-------用户授权,并获取用户基本信息和加密数据------')console.log(res.detail);},
微信登录
参考官方:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
(1)页面uni.login获取code
(2)后端通过code获取sessionKey、openid(unionid)等,后端调用接口如下:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
(3)示例代码
wxLogin: function() {uni.login({provider: 'weixin',success: function(loginRes) {console.log('-------获取code-------')console.log(loginRes.code);wx.request({url: 'https://xxxxx'+loginRes.code,success: function(info) {console.log('-------获取sessionKey、openid(unionid)-------')console.log(info);},fail: function(e) {console.log(e)}})}});}
微信登录状态监测
checkLogin: function() {wx.checkSession({success() {console.log('ok');// session_key 未过期,并且在本生命周期一直有效},fail() {// session_key 已经失效,需要重新执行登录流程//wx.login() // 重新登录console.log('expire');}})},
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
更多相关文章
- android adb root方法
- android webview中使用Java调用JavaScript方法并获取返回值
- android view setTag()和findViewWithTag()
- android wifi讲解 wifi列表显示
- Android(安卓)webview数据获取 webview抓取
- Android(安卓)应用内切换语言 实现多语言功能
- Android实现短信验证码获取自动填写功能(详细版)
- Android(安卓)通过高德地图获取地址的经纬度
- 对OAuth2认证的小结【Android】