最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

uni-app之APP和小程序微信授权方法

来源:动视网 责编:小采 时间:2020-11-27 21:57:17
文档

uni-app之APP和小程序微信授权方法

uni-app之APP和小程序微信授权方法:uni-app 介绍 uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。 适用平台:Android、iOS、微信小程序。实现了一套代码,同时发布到Android、iOS、微信小程序。 参考官方:https://uniapp.dcloud.io/ APP微信授权 检测服务商 检测
推荐度:
导读uni-app之APP和小程序微信授权方法:uni-app 介绍 uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。 适用平台:Android、iOS、微信小程序。实现了一套代码,同时发布到Android、iOS、微信小程序。 参考官方:https://uniapp.dcloud.io/ 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));
	}
});

示例代码

<!-- #ifdef APP-PLUS -->
<button class="" @click="appLogin">APP微信授权登录</button>
<!-- #endif -->
	
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

示例代码:

<!-- #ifdef MP-WEIXIN -->
<button class="" open-type="getUserInfo" @getuserinfo="wxGetUserInfo" withCredentials="true">微信授权获取用户信息</button>
<!-- #endif -->

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)示例代码

<!-- #ifdef MP-WEIXIN -->
<button class="" @click="wxLogin">微信登录</button>
<!-- #endif -->

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)
	}
	})
	}
	});
}

微信登录状态监测

<!-- #ifdef MP-WEIXIN -->
<button class="" @click="checkLogin">微信登录检测</button>
<!-- #endif -->

checkLogin: function() {
	wx.checkSession({
	success() {
	console.log('ok');
	// session_key 未过期,并且在本生命周期一直有效
	},
	fail() {
	// session_key 已经失效,需要重新执行登录流程
	//wx.login() // 重新登录
	console.log('expire');
	}
	})
},

文档

uni-app之APP和小程序微信授权方法

uni-app之APP和小程序微信授权方法:uni-app 介绍 uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架。 适用平台:Android、iOS、微信小程序。实现了一套代码,同时发布到Android、iOS、微信小程序。 参考官方:https://uniapp.dcloud.io/ APP微信授权 检测服务商 检测
推荐度:
标签: app 小程序 授权
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top