• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序button授权

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前瞻:

 

 

微信小程序授权方式改为只能通过button按钮点击触发,抛弃原来的模态框授权模式;

 

  

实现思路:

  实现地方在小程序全局app.js里面触发,但app.js中无法实现dom操作.故唯一方式就是当获取到新用户的时候利用跳转路由方法,跳转至一个新的页面去进行授权操作.

  

案例难点:

  1.app.js中 当验证授权是 通过wx.getSetting 中的res.authSetting[\'scope.userInfo\'] 判断是否为新用户在此做跳转;

  2.当授权成功时跳转回首页,数据无法重新加载,应在app.js中添加一个函数来监控状态值当授权成功时调用配合数据刷新重新获取数据;

  3.跳转的时候运用redirectTo 这样能实现不授权禁止访问的需求;

页面:

 

 

代码片段:

login.wxml

 

<view wx:if="{{canIUse}}">
<view class=\'header\'>
<image src=\'/images/wx_login.png\'></image>
</view>

<view class=\'content\'>
<view>申请获取以下权限</view>
<text>获得你的公开信息(昵称,头像等)</text>
</view>

<button class=\'bottom\' type=\'primary\' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
授权登录
</button>
</view>

<view wx:else>请升级微信版本</view>

 


 

login.wcss

 

.header {
margin: 90rpx 0 90rpx 50rpx;
border-bottom: 1px solid #ccc;
text-align: center;
width: 650rpx;
height: 300rpx;
line-height: 450rpx;
}

.header image {
width: 200rpx;
height: 200rpx;
}

.content {
margin-left: 50rpx;
margin-bottom: 90rpx;
}

.content text {
display: block;
color: #9d9d9d;
margin-top: 40rpx;
}

.bottom {
border-radius: 80rpx;
margin: 70rpx 50rpx;
font-size: 35rpx;
}
 

 

login.json

 

{
"navigationBarTitleText": "授权登录"
}
 

 

app.js

Page({
data: {
//判断小程序的API,回调,参数,组件等是否在当前版本可用。
canIUse: wx.canIUse(\'button.open-type.getUserInfo\')
},
onLoad: function () {
var that = this;
// 查看是否授权
wx.getSetting({
success: function (res) {
if (res.authSetting[\'scope.userInfo\']) {
wx.getUserInfo({
success: function (res) {
//从数据库获取用户信息
that.queryUsreInfo();
//用户已经授权过
wx.switchTab({
url: \'\'
})
}
});
}
}
})
},
bindGetUserInfo: function (e) {
if (e.detail.userInfo) {
//用户按了允许授权按钮
var that = this;
//插入登录的用户的相关信息到数据库
wx.request({
url: getApp().globalData.urlPath + \'hstc_interface/insert_user\',
data: {
openid: getApp().globalData.openid,
nickName: e.detail.userInfo.nickName,
avatarUrl: e.detail.userInfo.avatarUrl,
province:e.detail.userInfo.province,
city: e.detail.userInfo.city
},
header: {
\'content-type\': \'application/json\'
},
success: function (res) {
//从数据库获取用户信息
that.queryUsreInfo();
console.log("插入小程序登录用户信息成功!");
}
});
//授权成功后,跳转进入小程序首页
wx.switchTab({
url: \'\' 
})
} else {
//用户按了拒绝按钮
wx.showModal({
title:\'警告\',
content:\'您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!\',
showCancel:false,
confirmText:\'返回授权\',
success:function(res){
if (res.confirm) {
console.log(\'用户点击了“返回授权”\')
} 
}
})
}
},
//获取用户信息接口
queryUsreInfo: function () {
wx.request({
url: getApp().globalData.urlPath + \'hstc_interface/queryByOpenid\',
data: {
openid: getApp().globalData.openid
},
header: {
\'content-type\': \'application/json\'
},
success: function (res) {
console.log(res.data);
getApp().globalData.userInfo = res.data;
}
});
},

})

 


补充:
---------------------
作者:csdn_小东
来源:CSDN
原文:https://blog.csdn.net/weidong_y/article/details/79636386
版权声明:本文为博主原创文章,转载请附上博文链接!

 

代码片段直接上了 大佬的 个人因为项目保密


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序授权问题发布时间:2022-07-18
下一篇:
微信小程序 - 授权页面发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap