关于微信小程序

1,小程序的登录流程

       使用uniapp,调用uni.login()返回code,将此code传入传入后端接口,获取对应的openID或者自己公司平台的id。调用uni.setStorageSync()将id传入存储中,方便在其他页面调用或者作为接口的请求头。

onLoad() {
	// 静默登录
	uni.login({
		provider: 'weixin',
		success: (res) => {
			this.code = res.code;
			uni.showLoading({
				title: '授权中'
			})
			if (res.errMsg == 'login:ok') {
				
				uni.request({
					url: '你需要访问的url' ,
					method: 'GET',
					header: {
						'Content-Type': 'application/json;charset=UTF-8'
					},
					data
					}).then((res) => {
								// console.log(res, 777);
								uni.hideLoading();
								//获取到 openid 和 session_k后,自己的逻辑
								console.log('授权登录', res[1].data);
								// DoSomeThing.................
							});
					}
				},
			});
},

2,获取头像和昵称

      之前是通过uni.getUserProfile()来获取用户的头像和昵称,现在只能返回一个默认的头像和昵称。可以看官网的描述:头像昵称填写 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html

       获取头像需要将 button 组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavatar 事件回调获取到头像信息的临时路径。

	<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
			<image class="avatarURL" mode="aspectFill" :src="avatar1?avatar1:defaultAvatarUrl"></image>
	</button>
// 获取头像
onChooseAvatar(e) {
	// console.log(e);
	const {avatarUrl} = e.detail // 此返回的路径为临时路径,需转换为永久路径保存使用
},

 获取永久头像可以浏览该文章:

微信小程序上传头像和昵称持久化保存_RedEric的博客-CSDN博客 

        获取昵称需要将 input 组件 type 的值设置为 nickname,当用户在此input进行输入时,键盘上方会展示微信昵称。

<input type="nickname" class="nickName" placeholder="请输入昵称" v-model="nickname1" @blur="getNickname" />
// 获取昵称
getNickname(e) {
	console.log(e.detail.value);
},

3,获取手机号

      获取手机号需要将 button 组件 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到动态令牌code,然后把code传到开发者后台,并在开发者后台调用微信后台提供的 phonenumber.getPhoneNumber 接口,消费code来换取用户手机号。每个code有效期为5分钟,且只能消费一次。

获取手机号,只能在企业级的小程序能用,因为要去做微信认证,需要交300块作为认证费用。

<button open-type="getPhoneNumber" type="primary" @getphonenumber="getPhoneNumber">唤起授权手机号</button>
// 获取手机号
getPhoneNumber(e) {
    console.log(e);
	if (e.detail.errMsg == "getPhoneNumber:ok") { // 用户允许或去手机号
		uni.request({
			url: "你要访问的url",
			method: "GET",
			header: {
			    'itmp-token': this.token // 这里是自己写的请求头,用作验证
			},
			success: (res) => {
				console.log(res);
			    if (res.data.errorinfo == null) {
					console.log(res.data) // 这个里面就有手机号了
					uni.setStorageSync('phoneNumber', res.data.data)
					this.phoneNumber = res.data.data
				}
			}
	   })
	}
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值