uniapp微信小程序获取用户信息,手机号码

uniapp微信小程序获取用户信息,手机号码,第1张

<view @click=getUserInfo">获取微信信息</view>

// 获取用户信息

getUserInfo() {

    if(thisisShow){//防止多次点击

        thisisShow = false

         unigetUserProfile ({

            desc: "获取个人信息",

            success: (res) => {

                thisuserInfo = resuserInfo

                thisisShow = true

            },

            fail: getUserProfileFail => {

                thisisShow = true

                unishowToast({

                    title: '授权失败',

                    mask: false,

                    duration: 1000,

                    icon: 'none',

                })

            }

        })

    }

},

<button type="default" open-type="getPhoneNumber" @getphonenumber="ongetPhoneNumber">授权获取手机号登录</button>

// 获取手机号码

ongetPhoneNumber(e) {

    if (edetailerrMsg == "getPhoneNumber:fail user deny") { //用户拒绝授权 

        //拒绝授权后d出一些提示 

        unishowToast({

            title: '拒绝授权',

            mask: false,

            duration: 1000,

            icon: 'none',

        })

    } else { //允许授权 

        apppostData('url',{

            key: appglobalDatasession_key,

            encryptedData: edetailencryptedData,

            iv: edetailiv

        })then(res=>{

            consolelog("获取手机号码",res)

            thismobile = resdataphoneNumber

            unisetStorageSync('xmfTel',resdataphoneNumber)

        })catch(err=>{

            consolelog(err)

        })

    }

},

微信小程序对于用户信息获取进行了接口调整。调用 wxgetUserInfo(Object object) 不会再由d窗授权提示。在已授权时,可以直接获取用户信息;否则则直接进入 fail 回调函数。

用户的授权状态可以用 wxgetSetting() 接口的请求的结果

resauthSetting['scopeuserInfo'] 来判断。

那么在接口调整后,再进行授权登录则需要通过 open-data 来实现。

注:如果用户微信版本不支持open-data,需要提示用户升级。这次接口的调整实际上使得按一次d窗中的授权按钮即可授权的 *** 作变成了需要按两次,并且需要额外设计授权页面或者在主页先进行一次d窗引导用户授权。实际上更加繁琐。

一个很常用的功能,但是我还是发现有一些需要注意的地方在里面,简单记录一下。

第一个问题就是这个 button 组件需要添加 open-type 属性,并指定为 getUserInfo 类型,来获取用户基本信息。还有另外一种做法,具体可以参考 官方文档的说明 。

放一个动图哈哈哈

js 部分就是响应点击事件,使用 api wxgetUserInfo(Object object)

获取用户信息,注意传递给 wxgetUserInfo 的是一个字典其中包含了两个函数分别作为成功和失败的回调函数(callback function)

注意 this 的指代对象发生了变化,最开始的this是指代 Page() 构造出来的对象,在函数里面使用 this 会说未指定,所以我们使用了 that 承接一下,这也算传统艺能咯。

另外一点:获取用户信息时会自动d出一个对话框问用户是否提供信息,这个d窗只d出一次,如果用户点击了拒绝后来又想改为允许,可以使用 wxopenSetting({})

除了可以获取用户的昵称之外还有很多信息可以得到,还有一个比较常用的就是用户头像了也就是 resuserInfoavatarUrl 。

微信小程序button api

>

在设置获取微信用户信息之前,你需要先配置好微信登录这个功能。然后准备好一个点击触发获取用户信息的组件(触发组件)。然后跟着以下两个步骤来实行:

第一步,创建“请求微信用户信息”事件:打开事件中心,点击“+”。接着点击请求微信用户信息,最后创建请求微信用户信息事件。

第二步,创建获取用户信息触发器:选中触发组件,点击检查器面板的触发器图标,创建获取用户信息的触发器,最后配置获取用户信息的触发器。

完成以上两个步骤就OK啦。

1、appid: 微信小程序/公众号的唯一凭证,即 AppID。

获取途径:可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)

用途:小程序的 AppID 相当于小程序平台的一个身份z,会在很多场景中使用,比如小程序的登录、授权等

2、openID: openID 是微信生态下 应用的唯一标识 , ,即同一个用户在不同的小程序下的openid是不同的。

获取途径:调用 authcode2Session 接口,通过code(登录凭证,调用wxlogin获取)+appid+appsecret(小程序密钥,获取方式和appid一样)可以换取openid,即 静默授权。

用途:用于在开发者系统中标识用户信息

3、UnionID:UnionID 是微信生态下 用户的唯一标识 ,换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

获取途径:绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。

1)开发者可以直接通过 wxlogin + code2Session 获取到该用户 UnionID,无须用户授权。

2)小程序端调用云函数时,可在云函数中通过 CloudgetWXContext 获取 UnionID。

用途:标识同一个微信开放平台下的用户,可用于去重判断

也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;

需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。

1、静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。

2、静默授权的过程:

1)调用 wxlogin() 获取 临时登录凭证code

2)调用 authcode2Session 接口,换取用户唯一标识 openID

3)调用本地后台服务,将 openID 映射到本地的 userId

微信开发文档-小程序登录流程

参考文章:

1、 微信小程序用户授权登录

2、 微信第三方登录(静默授权和非静默授权)

3、 openid会变吗?微信小程序开发中的appid、openid、unionid使用总结

1小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口

2在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid,这个id是用户唯一的id并且不

3获取用户信息很简单,并且不需要自己的服务器处理,只需要小程序端提供的API。前端页面

4这个时候就可以把该用户的openid 和 昵称,头像,一块调用自己服务端接口,保存到数据

以上就是关于uniapp微信小程序获取用户信息,手机号码全部的内容,包括:uniapp微信小程序获取用户信息,手机号码、微信小程序用户信息获取接口的调整、微信小程序获取当前用户信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9328402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存