手机版

微信小程序用户授权、位置授权、获取微信绑定手机号

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

1.位置授权

位置授权相对简单。可以直接调用方法wx.getLocation()弹出授权框。

调用前需要在app.json中设置使用说明

页面({'permission' : { '范围。用户位置' : {'desc' : '您的位置信息将用于xxx'} }})授权框

然而,有很多用户拒绝授权。如果他们拒绝授权,就不会再弹出来。相反,他们将直接进入接口fail回调,这需要手动授权。我们可以通过定制弹出窗口来诱导用户授权。我在这里使用wx.showMoadl确认框。

确认框

如果确认,调用wx.opensetting调出授权设置页面

Wx.showModal({ title: '提醒',content: '您拒绝了位置授权,将无法使用大多数功能。单击“确定”再次获得授权,成功(res) {//如果单击“确定”如果(RES . confirm){ wx . open setting({//打开设置页面成功(res) {//成功,返回页面回调//用户位置=true如果(res. authsetting【】作用域。用户位置']){//如果授权/*您的代码*/} } } })授权设置页面中存在位置授权,则执行逻辑

完全码

wx . getlocation({ success : function(RES){ app . global data . lat=RES . latitude;app.globalData.lon=res .经度;},fail(){ wx . show modal({ title : '提醒',content: '您拒绝了位置授权,将无法使用大多数功能。单击“确定”再次获取授权,',成功(res) {//如果单击“确定”如果(RES . confirm){ wx . open setting({ Success(RES){//User location=true如果(RES . authsetting[' scope . User location ']){ that . onload()} } } })

用户授权步骤相对复杂,因为获得wx.getUserInfo界面后,授权弹出窗口将不再出现。需要手动点击授权,所以也需要诱导用户点击按钮。

button open-type=' getuser info ' bindguteuserinfo=' bindguteuserinfo ' confirm/button

开放式我用了两种

GetUserInfo获取用户信息,getPhoneNumber从bindgetuserinfo回调中获取用户电话号码,可以从bindgetphonenumber回调中获取用户信息(如下图)。请注意,这里的:必须是按钮组件才能触发。

这里我把它封装成一个模拟弹出框(难看的样式,自己修改的),wxss就不发了

模拟弹出窗口

!-wxml-View class=' getinfo ' wx : if=' { { have info } } ' View class=' content ' View class=' text '我们需要获取您的授权信息/View View class=' BTN _ block ' Button class=' BTN 1 ' bind tap=' no ' reject/Button Button class=' BTN 2 ' open-type=' getuserinfo ' bindgeuserinfo=' bindguteuserinfo ' confirm/Button/View/View调用bindUserInfo。如果存在e.detail.userInfo,则表示授权成功

BindGetUserInfo(e){///用户点击允许授权if(e . detail . userinfo){//Business Logic },授权成功后调用wx.getUserInfo()即可获取用户信息

完全码

BindGetUserInfo(e){///用户单击以允许授权,如果(e . detail . userinfo){ this . setdata({ have info : false })//获取用户信息wx . getsetting({ success : RES={ if(RES . authsetting [' scope . userinfo ']){ wx . getuserinfo({ success 360 RES={ app . global data . userinfo=res.userinfo//business代码})}}

用户的手机授权也是需要诱导点击按钮触发的授权框,所以也需要定制。

与获取用户信息的自定义框不同的是button属性

button class=' BTN 2 ' open-type=' getphonenumber ' bind getphonenumber=' getphonenumber ' confirm/button

对bindgetphonenumber函数的成功调用将返回三个值:

加密数据:包括敏感数据在内的完整用户信息的加密数据。详见加密数据解密算法四:加密算法初始向量。详见加密数据解密算法cloudID:敏感数据对应的cloud ID。只有为云开发打开的小程序才会返回,打开的数据可以直接通过云调用获取。详见云调用直接获取开放数据。我用加密数据和静脉注射。将这两个发送到后端进行解码可以得到三个值(写

PhoneNumber:用户绑定的手机号(国外手机号会有区号)purePhoneNumber:没有区号的手机号countryCode:如果区号获取成功,会返回三个值,但是如果获取失败,就不会,所以我们可以通过这三个值直接判断是否授权获取手机。

我的代码

//获取用户的手机getphonenumber(e){ if(e . detail . encrypteddata){ this . setdata({ have phone : false })wx . request({ URL : app . global data . URL ' xio _ bind phone ',method: 'POST ',header : { ' Content-Type ' : ' application/x-www-form-URL encoded ' },data 3: { user _ id : app . global data我会在下面写下我的过程和逻辑

————————————————————————————————

如果有新用户进入小程序,将代码提交给后端,后端在数据库中创建一个新用户。此时新的用户数据只有少量的数据(比如后端自己创建的id),所以我们需要将获得的值传输到后端来完善数据库。

1.判断用户在数据库中是否有头像和姓名,如果没有,则授权用户数据(传输头像和姓名),并将获得的头像和姓名传输到后端完美数据库。此时,授权用户信息,即wx.getUserInfo.

第二,判断用户数据库中是否有手机号码,如果没有,则调用获取手机号码的授权,即getPhoneNumber。

Iii .位置授权是项目需要,所以可以调用wx.getLocation。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:微信小程序用户授权、位置授权、获取微信绑定手机号是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。