正在显示
12 个修改的文件
包含
236 行增加
和
0 行删除
app.js
0 → 100644
| 1 | +//app.js | ||
| 2 | +App({ | ||
| 3 | + onLaunch: function () { | ||
| 4 | + // 展示本地存储能力 | ||
| 5 | + var logs = wx.getStorageSync('logs') || [] | ||
| 6 | + logs.unshift(Date.now()) | ||
| 7 | + wx.setStorageSync('logs', logs) | ||
| 8 | + | ||
| 9 | + // 登录 | ||
| 10 | + wx.login({ | ||
| 11 | + success: res => { | ||
| 12 | + // 发送 res.code 到后台换取 openId, sessionKey, unionId | ||
| 13 | + } | ||
| 14 | + }) | ||
| 15 | + // 获取用户信息 | ||
| 16 | + wx.getSetting({ | ||
| 17 | + success: res => { | ||
| 18 | + if (res.authSetting['scope.userInfo']) { | ||
| 19 | + // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 | ||
| 20 | + wx.getUserInfo({ | ||
| 21 | + success: res => { | ||
| 22 | + // 可以将 res 发送给后台解码出 unionId | ||
| 23 | + this.globalData.userInfo = res.userInfo | ||
| 24 | + | ||
| 25 | + // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 | ||
| 26 | + // 所以此处加入 callback 以防止这种情况 | ||
| 27 | + if (this.userInfoReadyCallback) { | ||
| 28 | + this.userInfoReadyCallback(res) | ||
| 29 | + } | ||
| 30 | + } | ||
| 31 | + }) | ||
| 32 | + } | ||
| 33 | + } | ||
| 34 | + }) | ||
| 35 | + }, | ||
| 36 | + globalData: { | ||
| 37 | + userInfo: null | ||
| 38 | + } | ||
| 39 | +}) |
app.json
0 → 100644
app.wxss
0 → 100644
pages/index/index.js
0 → 100644
| 1 | +//index.js | ||
| 2 | +//获取应用实例 | ||
| 3 | +const app = getApp() | ||
| 4 | + | ||
| 5 | +Page({ | ||
| 6 | + data: { | ||
| 7 | + motto: 'Hello World', | ||
| 8 | + userInfo: {}, | ||
| 9 | + hasUserInfo: false, | ||
| 10 | + canIUse: wx.canIUse('button.open-type.getUserInfo') | ||
| 11 | + }, | ||
| 12 | + //事件处理函数 | ||
| 13 | + bindViewTap: function() { | ||
| 14 | + wx.navigateTo({ | ||
| 15 | + url: '../logs/logs' | ||
| 16 | + }) | ||
| 17 | + }, | ||
| 18 | + onLoad: function () { | ||
| 19 | + if (app.globalData.userInfo) { | ||
| 20 | + this.setData({ | ||
| 21 | + userInfo: app.globalData.userInfo, | ||
| 22 | + hasUserInfo: true | ||
| 23 | + }) | ||
| 24 | + } else if (this.data.canIUse){ | ||
| 25 | + // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 | ||
| 26 | + // 所以此处加入 callback 以防止这种情况 | ||
| 27 | + app.userInfoReadyCallback = res => { | ||
| 28 | + this.setData({ | ||
| 29 | + userInfo: res.userInfo, | ||
| 30 | + hasUserInfo: true | ||
| 31 | + }) | ||
| 32 | + } | ||
| 33 | + } else { | ||
| 34 | + // 在没有 open-type=getUserInfo 版本的兼容处理 | ||
| 35 | + wx.getUserInfo({ | ||
| 36 | + success: res => { | ||
| 37 | + app.globalData.userInfo = res.userInfo | ||
| 38 | + this.setData({ | ||
| 39 | + userInfo: res.userInfo, | ||
| 40 | + hasUserInfo: true | ||
| 41 | + }) | ||
| 42 | + } | ||
| 43 | + }) | ||
| 44 | + } | ||
| 45 | + }, | ||
| 46 | + getUserInfo: function(e) { | ||
| 47 | + console.log(e) | ||
| 48 | + app.globalData.userInfo = e.detail.userInfo | ||
| 49 | + this.setData({ | ||
| 50 | + userInfo: e.detail.userInfo, | ||
| 51 | + hasUserInfo: true | ||
| 52 | + }) | ||
| 53 | + } | ||
| 54 | +}) |
pages/index/index.wxml
0 → 100644
| 1 | +<!--index.wxml--> | ||
| 2 | +<view class="container"> | ||
| 3 | + <view class="userinfo"> | ||
| 4 | + <button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button> | ||
| 5 | + <block wx:else> | ||
| 6 | + <image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image> | ||
| 7 | + <text class="userinfo-nickname">{{userInfo.nickName}}</text> | ||
| 8 | + </block> | ||
| 9 | + </view> | ||
| 10 | + <view class="usermotto"> | ||
| 11 | + <text class="user-motto">{{motto}}</text> | ||
| 12 | + </view> | ||
| 13 | +</view> |
pages/index/index.wxss
0 → 100644
| 1 | +/**index.wxss**/ | ||
| 2 | +.userinfo { | ||
| 3 | + display: flex; | ||
| 4 | + flex-direction: column; | ||
| 5 | + align-items: center; | ||
| 6 | +} | ||
| 7 | + | ||
| 8 | +.userinfo-avatar { | ||
| 9 | + width: 128rpx; | ||
| 10 | + height: 128rpx; | ||
| 11 | + margin: 20rpx; | ||
| 12 | + border-radius: 50%; | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +.userinfo-nickname { | ||
| 16 | + color: #aaa; | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +.usermotto { | ||
| 20 | + margin-top: 200px; | ||
| 21 | +} |
pages/logs/logs.js
0 → 100644
pages/logs/logs.json
0 → 100644
pages/logs/logs.wxml
0 → 100644
pages/logs/logs.wxss
0 → 100644
project.config.json
0 → 100644
| 1 | +{ | ||
| 2 | + "description": "项目配置文件。", | ||
| 3 | + "packOptions": { | ||
| 4 | + "ignore": [] | ||
| 5 | + }, | ||
| 6 | + "setting": { | ||
| 7 | + "urlCheck": true, | ||
| 8 | + "es6": true, | ||
| 9 | + "postcss": true, | ||
| 10 | + "minified": true, | ||
| 11 | + "newFeature": true | ||
| 12 | + }, | ||
| 13 | + "compileType": "miniprogram", | ||
| 14 | + "libVersion": "2.2.2", | ||
| 15 | + "appid": "wxe91c67adba6ac02d", | ||
| 16 | + "projectname": "%E8%87%AA%E7%84%B6%E4%BA%BA%E7%A8%8E%E6%94%B6", | ||
| 17 | + "isGameTourist": false, | ||
| 18 | + "condition": { | ||
| 19 | + "search": { | ||
| 20 | + "current": -1, | ||
| 21 | + "list": [] | ||
| 22 | + }, | ||
| 23 | + "conversation": { | ||
| 24 | + "current": -1, | ||
| 25 | + "list": [] | ||
| 26 | + }, | ||
| 27 | + "game": { | ||
| 28 | + "currentL": -1, | ||
| 29 | + "list": [] | ||
| 30 | + }, | ||
| 31 | + "miniprogram": { | ||
| 32 | + "current": -1, | ||
| 33 | + "list": [] | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | +} |
utils/util.js
0 → 100644
| 1 | +const formatTime = date => { | ||
| 2 | + const year = date.getFullYear() | ||
| 3 | + const month = date.getMonth() + 1 | ||
| 4 | + const day = date.getDate() | ||
| 5 | + const hour = date.getHours() | ||
| 6 | + const minute = date.getMinutes() | ||
| 7 | + const second = date.getSeconds() | ||
| 8 | + | ||
| 9 | + return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +const formatNumber = n => { | ||
| 13 | + n = n.toString() | ||
| 14 | + return n[1] ? n : '0' + n | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +module.exports = { | ||
| 18 | + formatTime: formatTime | ||
| 19 | +} |
请
注册
或
登录
后发表评论