微信小程序一键授权之前先勾选用户协议

这篇具有很好参考价值的文章主要介绍了微信小程序一键授权之前先勾选用户协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序授权获取手机号之前勾选我已阅读并同意协议

想要实现的效果:用户点击微信一键注册按钮,如果用户没有勾选协议,就提示请勾选用户协议,如果勾选了,就直接获取微信用户的手机号密文。

开始想的是直接在getPhoneNumber()方法中加一个判断。这种做法存在的问题是,没有勾选协议的情况下点击按钮后弹出授权页面,会挡住前面加的判断提示,点击授权同意后才会看到提示请勾选用户协议的提示框。然后勾选协议再次点击按钮时又出现授权弹框,用户体验不好。

解决方法:
wxml页面写两个一模一样的按钮,绑定不同的方法,显示隐藏加一个判断,判断条件是是否勾选,勾选的话就调用获取手机号方法,没勾选的话显示点击弹出提示勾选的方法。文章来源地址https://www.toymoban.com/news/detail-524185.html

<view class='choose'>选择注册方式</view>
    <button class='btn-getphone' bindtap='showtips' wx:if="{{agree == ''}}">
      <image src='/images/weixin.png'></image>
      <label>微信一键注册</label>
    </button>
    <button class='btn-getphone' open-type="getPhoneNumber" wx:if="{{agree != ''}}" bindgetphonenumber="getPhoneNumber">
      <image src='/images/weixin.png'></image>
      <label>微信一键注册</label>
    </button>
    <label class="checkbox">
     <checkbox-group bindchange="checkboxChange">
        <checkbox value="agree" checked="true"/>
        我已阅读并同意
      </checkbox-group>
      <label style='color:#CCAE73' bindtap='toprotocol'>
      《****用户协议》
      </label>
    </label>
</view>
  data: {
    agree:'agree'  				//默认勾选状态
  },
  //获取手机号
getPhoneNumber: function (e) {
    var that = this;
    if (this.data.agree == ''){
      wx.showToast({
        title: '请勾选用户协议',
        icon: 'none',
        duration: 2000
      })
    }
    if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
        wx.showToast({
          title: '您已取消授权',
          icon: 'none',
          duration: 2000
        })
      } else {
      console.log("同意授权手机号")
      console.log(e);
      var number = e;
      wx.login({
        success: function (res) {
          if (res.code) {
            net.mylog("code是" + res.code);
            net.request_post(false, myurl + '/wx/getInfo',
              { code: res.code },
              function (res2) {
                //请求接口解密
                console.log(number)
                var pc = new WXBizDataCrypt(config.appId, res2.data.session_key)
                var data = pc.decryptData(number.detail.encryptedData, number.detail.iv);
                console.log(data.phoneNumber);
                that.submitRegister(data.phoneNumber); //提交注册信息
              })
          } else {
            wx.showToast({
              title: "获取手机号码失败",
              icon: 'none',
              duration: 2000
            })
          }
        },
        fail: function (error) {
          wx.showToast({
            title: "获取手机号码失败",
            icon: 'none',
            duration: 2000
          })
        }
      }) 
      }
  } ,


上面代码中,在util.js文件夹中新建工具类封装方法。(在页面中调用封装的方法时,要记得引用)
var net = require("../../../utils/netTools.js");


封装post请求:
function request_post(auto,url, data, success, fail) {
    if(auto==true){
      wx.showLoading({
        title: '加载中',
      })
    }
    wx.request({
      url: url, //接口地址
      data: data,
      method: 'POST',
      header: {
        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      success: function (res) {
        // console.log(res); 
        if (auto == true) {
          wx.hideLoading();
        }
        if (res.data.code==200) {
          success(res.data);
        }else {
            wx.showToast({
              title: res.data.msg,
              icon: 'none',
              duration: 2000
            })
        }
      },
      fail:function(){
        wx.showToast({
          title: "服务异常",
          icon: 'none',
          duration: 2000
        })
        if (auto == true) {
          wx.hideLoading();
        }
        if(fail != null){
          fail();
        }
      }
    })
  }
module.exports = {
  request_post: request_post
}

到了这里,关于微信小程序一键授权之前先勾选用户协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023最新使用微信小程序完成一键授权登录

    前言: 使用开发工具:小程序。在我这一篇已经详细介绍了小程序的安装介绍今天我给大家带来的是微信的一键授权登录,保存用户信息,退出的功能!!!希望看完了这篇博客能够对你有帮助!!! 效果: 登录获取到用户信息: 思路 :点击按钮获取到用户信息(调用方

    2024年02月08日
    浏览(65)
  • 微信小程序判断用户是否授权定位

    1、判断用户是否授权定位 2、获取当前的地理位置 在实现获取用户位置信息功能时,要先判断用户是否给小程序授权定位信息 安卓报错信息: getLocation:fail:ERROR_NOCELLWIFI_LOCAL

    2024年02月16日
    浏览(46)
  • 微信小程序中,当用户已经拒绝本次授权后,如何重新向用户发起授权?

    当用户拒绝授权后,小程序无法调用相应的 API,需要让用户重新授权。可以通过以下步骤引导用户重新授权: 显示一个提示框,向用户说明需要该权限所需的原因,并提供一个打开设置页面的按钮。 点击打开设置页面按钮后,跳转到小程序的授权设置页。用户可以在此页面

    2024年02月11日
    浏览(91)
  • #微信小程序# #uni-app# 实现提交表单或登录,需勾选同意协议,才可以进行下一步

    一、需求: 实现提交表单或登录,需勾选同意协议,才可以进行下一步 二、步骤/思路: (1)使用uni-app的组件checkbox-group排出勾选协议版面   (2)设置一个多选框的数组,绑定在u-checkbox-group里, 使用这个数组来进行判断是否勾选了用户协议 (3)设置点击事件toBngling(),写

    2024年02月12日
    浏览(46)
  • 【微信小程序】如何获取用户手机号授权登录

    目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体),也就是说只针对企业认证小程序开放。若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。 在使用该接口时,用户可使用微信绑定手机号进行授权,也添加

    2024年02月16日
    浏览(63)
  • 微信小程序访问手机蓝牙需要用户授权解决办法

    小程序处理用户的个人信息,需要获取用户明示同意,平台计划 从2022年2月21日24时起对以下接口增加用户授权 : 访问蓝牙:调用wx.openBluetoothAdapter、wx.createBLEPeripheralServer,需要授权scope.bluetooth 添加通讯录联系人:调用wx.addPhoneContact,需要授权scope.addPhoneContact 添加日历事件

    2024年02月09日
    浏览(72)
  • 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务。而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一。因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录。 首先,在小程序后台开发设置中勾选“获取手机号”选项

    2024年02月11日
    浏览(89)
  • 微信小程序获取用户的openid以及授权登录拿到用户头像及姓名

    在微信小程序中,往往需要将用户信息录入自己的数据库中,就得有一个唯一标记区分用户,这个标记就是openid。 我这里用云函数的方式,比较简单 先创建一个名为getOPenid的云函数  在云函数中获取微信调用上下文cloud.getWXContext  可选择性的返回openid、appid、unionid等,可详细查

    2024年02月12日
    浏览(52)
  • uniapp微信小程序:点击按钮先判断用户是否授权位置信息、用户位置信息授权、进入下一个页面

    前提 :该实例是使用uniapp的小程序 实现的 文章描述: 这里要实现的功能是: 1、点击页面中的一个按钮 2、判断用户是否授权位置信息 3、未授权–弹出位置授权框;已授权–进入下一个页面(地址选择页); 4、弹出位置授权框后,是否同意授权 5、同意:得到地址;不同

    2024年02月08日
    浏览(46)
  • 微信小程序 wx.openSetting打开不显示,封装用户授权

            测试功能的时候,想要设置用户相册的功能,打开突然什么也没有,要么就是显示“个人信息与权限使用记录”,就连打印出来的 console.log(\\\"授权\\\",res.authSetting) 授权信息也是空的。         去社区翻回答都在扯皮,也没有准确的说法,只能去看文档了。 授权

    2024年02月14日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包