E企盈营销工具技术服务商 热线:4006-838-530

微信小程序之解除用户授权

E企盈直播平台营销卖货系统

先来看下下面这样写有什么问题?me/index.wxml:<view class=”container”>  <view class=”userinfo”>    <button wx:if=”{{!hasUserInfo && canIUse}}” open-type=”getUserInfo” bindgetuserinfo=”getUserInfo”>获取头像昵称</button>    <block wx:else>      <image class=”userinfo-avatar” src=”{{userInfo.avatarUrl}}” background-size=”cover”></image>      <text class=”userinfo-nickname”>{{userInfo.nickName}}</text>    </block>  </view></view>me/index.js:Page({    /**     * 页面的初始数据     */    data: {        userInfo:{},        hasUserInfo:false,        canIUse:wx.canIUse(“button.open-type.getUserInfo”)    },   //实现获取用户信息的方法    getUserInfo:function(e){        //console.log(e);        this.setData({            userInfo:e.detail.userInfo,            hasUserInfo:true        })    }})getUserInfo方法能够获得该事件e,打印该事件可以看到用户信息: 但是会发现这样做有个问题,一旦重新编译进入小程序会让我们再次点击获取信息,这不是我们想要的。接着看到app.js里有globalData这个全局变量,一旦用户授权后,信息就会存到这个全局变量中globalData: {    userInfo: null  } 如果想要在其他页面拿到总组件的对象,可以直接在每个页面的index.js里面获取应用实例,然后打印app,发现有我们所需要用到的东西。然后需要不管打开哪一个页面,都是能够获取数据的,所以选onLoad这个生命周期    /**     * 生命周期函数–监听页面加载     */    onLoad: function (options) {        if(app.globalData.userInfo){            this.setData({                userInfo:app.globalData.userInfo,                hasUserInfo:true            })        }else if(this.data.canIUse){            //由于getUserInfo 是网络请求,可能会在Page.onLoad之后才返回            //为了防止这种情况发生,所以此处加入callback            app.userInfoReadyCallback=res=>{                this.setData({                    userInfo:res.userInfo,                    hasUserInfo:true                })            }        }    },

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序之解除用户授权
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

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

支付宝扫一扫打赏

微信扫一扫打赏