uni微信小程序登录。若使用wx 原生写的 可直接把uni 改成wx

2 篇文章 0 订阅
1 篇文章 0 订阅

微信登录所需

获取wx用户信息

 // 在uni 官网提示 获取用户信息方法有很多 列:uni.getUserInfo() / uni.getUserProfile()
 // 然后 除去 uni.getUserProfile() 方法 其他的方法 调用返回的 在未调用 uni.login()登录方法之前
 // 返回的全是匿名数据 (微信基础库2.10.4版本对用户信息相关接口进行了调整)
 // 既然说到是登录我们肯定 是第一次所以我们采用 uni.getUserProfile()
	uni.getUserProfile({
		desc: "用于完善用户信息", //必填,声明获取用户个人信息后的用途
		success: (result) => {
			console.log( result)
			// result 详细参数
			//https://uniapp.dcloud.io/api/plugins/login.html#getuserprofile
		}
	})
	 

ps:之前在研究的时候 看到很多朋友说 uni.getUserProfile() 方法调用了没有反应
再次说明一下 uni.getUserProfile() 无法在页面加载生命周期中调用
在一个view 标签 中添加一个简单的 点击事件即可( @click=“login”)

调用uni.login 获取用户临时code 返回给后台

// 用户登录凭证。开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息
uni.login({
	success(res) {
		if (res.errMsg === 'login:ok') {
			onLogin(result.rawData, res.code).then((res) => { // onLogin 自我封装请求
				if (res.code == 200) {
						// 获取 后台接口返回的数据请求
				}
			})
		}
	}
})

说不多说直接上代码

<view class="Login_btm" @click="login">
	微信授权登录
</view>
import {
	onLogin
} from '@/pages/api/login.js'
export default {
	data(){
		return {
			falg:true,// 设置 防重复点击key
		}
	},
	methods:{
		// 小程序登录方法
		login(){
			let that = this 
			if(that.falg){
				that.falg =! that.falg//防重复点击
				uni.getUserProfile({
						desc: "用于完善用户信息", //必填,声明获取用户个人信息后的用途,不超过30个字符
						success: (result) => {
							uni.login({
								success(res) {
									if (res.errMsg === 'login:ok') {
										onLogin(result.rawData, res.code).then((res) => {
											if (res.code == 200) {
												const data = {
													xxx:xxx.xxx.xx
												}
												uni.setStorage({
													key: 'token_key_name',
													data: data
												})
												// 调用接口成功 获取 token  将数据缓存
											}
										})
									}
								}
							})
						},
					})
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app中,可以通过使用微信原生API来实现小程序进入时自动申请使用手机号的功能。具体步骤如下: 1. 在manifest.json文件中,添加如下配置: ``` "mp-weixin": { "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序定位" }, "scope.userInfo": { "desc": "你的个人信息将用于小程序登录" }, "scope.phoneNumber": { "desc": "你的手机号码将用于小程序登录" } } } ``` 这里添加了 `scope.phoneNumber` 权限,用于获取用户手机号码。 2. 在需要自动申请手机号的页面中,使用 `wx.getSetting()` 方法获取用户是否已授权手机号码权限。如果未授权,则调用 `wx.authorize()` 方法进行授权。 ``` // 在页面onLoad时调用 onLoad: function () { // 获取用户授权情况 wx.getSetting({ success: (res) => { // 判断用户是否已授权手机号码权限 if (!res.authSetting['scope.phoneNumber']) { // 未授权,则调用wx.authorize进行授权 wx.authorize({ scope: 'scope.phoneNumber', success: () => { console.log('用户已授权手机号码权限') // 授权成功后,调用获取手机号码的方法 this.getPhoneNumber() }, fail: () => { console.log('用户拒绝授权手机号码权限') } }) } else { console.log('用户已授权手机号码权限') // 已经授权,则调用获取手机号码的方法 this.getPhoneNumber() } } }) }, // 获取用户手机号码 getPhoneNumber: function () { wx.getUserInfo({ success: (res) => { console.log('用户信息:', res.userInfo) console.log('用户手机号码:', res.userInfo.phoneNumber) // TODO: 将手机号码保存到本地或后台服务器 }, fail: () => { console.log('获取用户信息失败') } }) } ``` 在上述代码中,我们首先通过 `wx.getSetting()` 方法获取用户是否已授权手机号码权限。如果未授权,则调用 `wx.authorize()` 方法进行授权。在授权成功后,我们调用 `this.getPhoneNumber()` 方法来获取用户手机号码。在 `getPhoneNumber()` 方法中,我们通过 `wx.getUserInfo()` 方法获取用户信息,并从中获取手机号码。 需要注意的是,用户授权后,可以通过 `wx.reLaunch()` 方法重新加载小程序,以便能够获取到用户的手机号码。 以上就是在uni-app中实现小程序进入时自动申请使用手机号的功能的详细步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值