微信小程序登陆封装
25-04-07 03:25
848
0
index.wxml
<!-- 登陆组件弹窗 --> <van-popup show="{{ loginBtn }}" round position="bottom" custom-style="height: 24%" bind:close="onClose" duration="246"> <view class="loginPanel"> <view class="panel-title">我想要你的头像和昵称,可以嘛~</view> <view class="panel-btns"> <van-button type="info" round bind:click="onClose">不可以</van-button> <van-button type="primary" round bind:click="_login">好的</van-button> </view> </view> </van-popup> <!-- 内容 --> <block wx:if="{{!loginShow}}"> <view class="loginok"> <view>韩小韩博客 wwww.vvhan.com</view> <view>登录成功</view> <image src="{{userInfo.avatarUrl}}" mode="widthFix" /> <view>Nick:{{userInfo.nickName}}</view> <view>OpenId:{{userInfo.openid}}</view> </view> </block> <block wx:else> <van-button class="loginbtn" plain type="info" bind:click="onClose">点击登录</van-button> </block>
index.js
const app = getApp(); Page({ data: { // 登陆按钮现实隐藏 loginBtn: false, // 全局是否登陆 loginShow: false, // 用户信息 userInfo: {} }, async onLoad() { const _res = await app._checkLogin(); this.setData({ loginBtn: _res, loginShow: _res, userInfo: app.globalData.userInfo }); }, // 登陆 async _login() { const _res = await app._getUserInfo(); _res && this.setData({ userInfo: app.globalData.userInfo, loginBtn: false }), this.onLoad(); }, // 关闭登陆弹窗 onClose(e) { this.setData({ loginBtn: e.type == "click" ? !this.data.loginBtn : false }); } });
app.js
App({ onLaunch: function () { // 全局变量 this.globalData = { openId: wx.getStorageSync('openId'), userInfo: wx.getStorageSync('userInfo') }; if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力'); } else { wx.cloud.init({ // env 参数说明: // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 // 如不填则使用默认环境(第一个创建的环境) // env: 'my-env-id', traceUser: true, }); } // 微信小程序获取版本更新 const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate(function (res) { // 请求完新版本信息的回调 }) updateManager.onUpdateReady(function () { wx.showModal({ title: '小韩提示', content: '新版来袭,速来体验!', success: function (res) { if (res.confirm) { updateManager.applyUpdate() } } }) }) updateManager.onUpdateFailed(function () { // 新版本下载失败 }); // 获取OpedId this._getOpenId() }, // 获取用户OpenId _getOpenId() { ((this.globalData.openId || '') == '') && wx.cloud.callFunction({ name: 'login' }).then(res => { this.globalData.openId = res.result.openid; wx.setStorageSync('openId', res.result.openid) }).catch(res => { console.error(res) }); }, // 判断是否登陆 async _checkLogin() { const _this = this return new Promise((resolve) => { wx.checkSession({ success: function (_res) { const _userInfo = wx.getStorageSync('userInfo'); resolve((_userInfo || '') === '') }, fail: async function (_res) { await wx.login({}) resolve(true) } }) }) }, // 获取用户信息并存储 async _getUserInfo() { return new Promise((resolve) => { wx.getUserProfile({ desc: 'get用户信息', success: async res => { res.userInfo.openid = this.globalData.openId this.globalData.userInfo = res.userInfo wx.setStorageSync('userInfo', res.userInfo) resolve(true) }, fail: () => { resolve(false) } }); }) }, }); });
-
田间小站 - 高质量英语学习
田间小站是一个值得你每天一看的高质量英语学习网站,它通过多种形式的学习教程和学习资料,帮助你提高英语口语,词汇,写作,阅读。 938 0 21-12-07 -
移动端充值HTML
384 0 21-06-02 -
幸运大转盘-jQuery+PHP实现的抽奖程序
在线抽奖程序在很多网站上得到应用,抽奖形式多种多样,这款转盘抽奖,通过转动转盘指针来完成抽奖的一种抽奖形式——幸运大转盘。目前好多... 833 0 21-07-07 -
RESTful 应用实践:构建一个介于前后台之间的服务
在学习了 Node.js 相关的知识以后,我们怎么才能在实际工作中将这些知识应用起来呢?在这之前,我们应该思考,是完全应用 Node.js 改造... 1228 0 24-05-24 -
小熊日记小程序
“小熊日记”,一款以微信小程序为平台的设计作品,简洁而不失温馨,旨在为现代人提供一个轻松记录生活瞬间的虚拟空间。无论是在清晨的第一... 1209 0 24-09-17 -
电脑必装软件有哪些?请一定别错过这五款
给大家分享五款电脑必装软件,每一个都值得安装。第一款IDM下载器,这款下载工具在全球都备受好评,相较于一般下载器,它的优势主要体现在... 766 0 25-04-26 -
员工招聘制度表 - 企业管理表格
招聘计划与面试.DOC增补人员申请书.DOC人员变更申请表.DOC应聘人员复试表.DOC人员增减申请书.DOC人员调动申请书.DOC停薪留职辞职申请表.DOC... 950 0 24-07-27 -
拼多多点赞 Ver.1.0 无限点赞曝光脚本
拼多多上面的商品想要展现的越多就需要不断的曝光获得点赞,拼多多点赞app是一款免费可用的无限点赞曝光脚本助手,可以解放双手,自动无限... 967 0 25-05-06
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~