• 关于小程序授权更好体验


    当我们点击拒绝,可能有些功能不能更好的使用,所以,我们要为用户打造更好的体验!

    废话不多说,直接上代码!

    授权页面

    auth.wxml

    <view class="imgBox">
    <!-- 心跳 -->
    <view class="bottomMiddleHeaderItemSubView">
    <image src="../../images/heart.png" style="150rpx; height:150rpx;" animation="{{animationMiddleHeaderItem}}"></image>
    </view>
    </view>
    <view class='textBox'>
    <view class='welcome'>
    <text>欢迎使用小程序</text>
    </view>
    <button class='btn' open-type="getUserInfo" bindgetuserinfo="getUserInfo">开始使用</button>
    </view>

    auth.css

    /* pages/auth/auth.wxss */
    
    .imgBox{
       100%;
      height: 360rpx;
      display: flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 100rpx;
    }
    .textBox{
       100%;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .welcome{
       100%;
      display: flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 150rpx;
      font-size: 50rpx;
      color: #f10215;
    }
    .btn{
      background: #f10215;
       60%;
      font-size: 40rpx;
      color: #FFFFFF;
    }

    auth.js

    // pages/auth/auth.js
    const app = getApp();
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        userInfo:{},
        hasUserInfo: false,
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        
      },
      getUserInfo: function (e) {
        console.log(e)
        if (e.detail.userInfo) {
          console.log('授权通过')
          console.log(e.detail.userInfo)
          const user = e.detail.userInfo;
          wx.setStorageSync('user', user)
          wx.reLaunch({
            url: '../index/index',
          })
        } else {
          console.log('拒绝授权')
          wx.reLaunch({
            url: '../checkAgain/checkAgain',
          })
        }
      },
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
        var circleCount = 0;
        this.animationMiddleHeaderItem = wx.createAnimation({
          duration: 1000,
          timingFunction: 'linear',
          delay: 100,
          transformOrigin: '50% 50%',
          success: function (res) {
    
          }
        });
    
        setInterval(function () {
          if (circleCount % 2 == 0) {
            this.animationMiddleHeaderItem.scale(1.15).step();
          } else {
            this.animationMiddleHeaderItem.scale(1.0).step();
          }
          this.setData({
            animationMiddleHeaderItem: this.animationMiddleHeaderItem.export()
          });
          circleCount++;
          if (circleCount == 1000) {
            circleCount = 0;
          }
        }.bind(this), 1000);
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
      
      },
    
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
      
      },
    
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
      
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
      
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
      
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
      
      }
    })

    如果点击拒绝,怎会切到我们重新授权页面

    重新授权页面

    checkAgain.wxml
    <view class='textBox'>
      <text class='title'>温馨提示!</text>
      <text>为保证您的正常使用,请进行授权!</text>
    </view>
    <view class='btnBox'>
      <button class='btn' open-type="getUserInfo" bindgetuserinfo="getUserInfo">重新授权</button>
    </view>

    checkAgain.wxss

    /* pages/checkAgain/checkAgain.wxss */
    .textBox{
       100%;
      padding: 30rpx 0;
      box-sizing: border-box;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
    }
    .textBox text{
      line-height: 80rpx;
    }
    .title{
      font-size: 50rpx;
    }
    .btnBox{
       100%;
      display: flex;
      justify-content: center;
    }
    .btnBox .btn{
      background: #f10215;
       60%;
      font-size: 40rpx;
      color: #FFFFFF;
    }
    checkAgain.js
    // pages/checkAgain/checkAgain.js
    const app = getApp();
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
      
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
      
      },
      getUserInfo: function (e) {
        console.log(e)
        if (e.detail.userInfo) {
          console.log('授权通过')
          console.log(e.detail.userInfo)
          const user = e.detail.userInfo;
          wx.setStorageSync('user', user)
          wx.reLaunch({
            url: '../index/index',
          })
        } else {
          console.log('拒绝授权')
          wx.reLaunch({
            url: '../checkAgain/checkAgain',
          })
        }
      },
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
      
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
      
      },
    
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
      
      },
    
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
      
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
      
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
      
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
      
      }
    })

    如果点击允许,则直接进入小程序首页。

    好了,谢谢大家看我写的废话,如对你有帮助,请直接拿走,不用谢。

  • 相关阅读:
    用户故事与敏捷方法阅读笔记2
    用户故事与敏捷方法阅读笔记1
    梦断代码阅读笔记3
    梦断代码阅读笔记2
    梦断代码阅读笔记1
    疫情可视化项目-进度2
    疫情可视化项目-进度1
    每日总结3.16
    Android体温记录器更新-进度5
    每日总结3.11
  • 原文地址:https://www.cnblogs.com/WangXinPeng/p/9413913.html
Copyright © 2020-2023  润新知