diff --git a/1614080902227/wx/app.js b/1614080902227/wx/app.js new file mode 100644 index 000000000..b54519049 --- /dev/null +++ b/1614080902227/wx/app.js @@ -0,0 +1,39 @@ +//app.js +App({ + onLaunch: function () { + // 展示本地存储能力 + var logs = wx.getStorageSync('logs') || [] + logs.unshift(Date.now()) + wx.setStorageSync('logs', logs) + + // 登录 + wx.login({ + success: res => { + // 发送 res.code 到后台换取 openId, sessionKey, unionId + } + }) + // 获取用户信息 + wx.getSetting({ + success: res => { + if (res.authSetting['scope.userInfo']) { + // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 + wx.getUserInfo({ + success: res => { + // 可以将 res 发送给后台解码出 unionId + this.globalData.userInfo = res.userInfo + + // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 + // 所以此处加入 callback 以防止这种情况 + if (this.userInfoReadyCallback) { + this.userInfoReadyCallback(res) + } + } + }) + } + } + }) + }, + globalData: { + userInfo: null + } +}) \ No newline at end of file diff --git a/1614080902227/wx/app.json b/1614080902227/wx/app.json new file mode 100644 index 000000000..cd5786bc5 --- /dev/null +++ b/1614080902227/wx/app.json @@ -0,0 +1,37 @@ +{ + "pages":[ + "pages/index/index", + "pages/logs/logs", + "pages/setpage/setpage" + ], + "window":{ + "backgroundTextStyle":"light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "电子书阅读", + "navigationBarTextStyle":"black" + }, + "tabBar": { + "list": [ + { + "pagePath": "pages/index/index", + "text": "主页" + }, + { + "pagePath": "pages/logs/logs", + "text": "社区" + }, + { + "pagePath": "pages/logs/logs", + "text": "个人" + } + ] + }, + "networkTimeout": { + "request": 10000, + "downloadFile": 10000 + }, + "debug": true, + "navigateToMiniProgramAppIdList": [ + "wxe5f52902cf4de896" + ] +} diff --git a/1614080902227/wx/app.wxss b/1614080902227/wx/app.wxss new file mode 100644 index 000000000..06c6fc9ce --- /dev/null +++ b/1614080902227/wx/app.wxss @@ -0,0 +1,10 @@ +/**app.wxss**/ +.container { + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + padding: 200rpx 0; + box-sizing: border-box; +} diff --git a/1614080902227/wx/pages/index/index.js b/1614080902227/wx/pages/index/index.js new file mode 100644 index 000000000..608a282e7 --- /dev/null +++ b/1614080902227/wx/pages/index/index.js @@ -0,0 +1,54 @@ +//index.js +//获取应用实例 +const app = getApp() + +Page({ + data: { + motto: 'Hello World', + userInfo: {}, + hasUserInfo: false, + canIUse: wx.canIUse('button.open-type.getUserInfo') + }, + //事件处理函数 + bindViewTap: function() { + wx.navigateTo({ + url: '../logs/logs' + }) + }, + onLoad: function () { + 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 + }) + } + } else { + // 在没有 open-type=getUserInfo 版本的兼容处理 + wx.getUserInfo({ + success: res => { + app.globalData.userInfo = res.userInfo + this.setData({ + userInfo: res.userInfo, + hasUserInfo: true + }) + } + }) + } + }, + getUserInfo: function(e) { + console.log(e) + app.globalData.userInfo = e.detail.userInfo + this.setData({ + userInfo: e.detail.userInfo, + hasUserInfo: true + }) + } +}) diff --git a/1614080902227/wx/pages/index/index.json b/1614080902227/wx/pages/index/index.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/1614080902227/wx/pages/index/index.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/1614080902227/wx/pages/index/index.wxml b/1614080902227/wx/pages/index/index.wxml new file mode 100644 index 000000000..80475b205 --- /dev/null +++ b/1614080902227/wx/pages/index/index.wxml @@ -0,0 +1,14 @@ + + + + + + + {{userInfo.nickName}} + + + + {{motto}} + + + diff --git a/1614080902227/wx/pages/index/index.wxss b/1614080902227/wx/pages/index/index.wxss new file mode 100644 index 000000000..ce30de019 --- /dev/null +++ b/1614080902227/wx/pages/index/index.wxss @@ -0,0 +1,21 @@ +/**index.wxss**/ +.userinfo { + display: flex; + flex-direction: column; + align-items: center; +} + +.userinfo-avatar { + width: 128rpx; + height: 128rpx; + margin: 20rpx; + border-radius: 50%; +} + +.userinfo-nickname { + color: #aaa; +} + +.usermotto { + margin-top: 200px; +} \ No newline at end of file diff --git a/1614080902227/wx/pages/logs/logs.js b/1614080902227/wx/pages/logs/logs.js new file mode 100644 index 000000000..b2b967d8e --- /dev/null +++ b/1614080902227/wx/pages/logs/logs.js @@ -0,0 +1,15 @@ +//logs.js +const util = require('../../utils/util.js') + +Page({ + data: { + logs: [] + }, + onLoad: function () { + this.setData({ + logs: (wx.getStorageSync('logs') || []).map(log => { + return util.formatTime(new Date(log)) + }) + }) + } +}) diff --git a/1614080902227/wx/pages/logs/logs.json b/1614080902227/wx/pages/logs/logs.json new file mode 100644 index 000000000..28379bccc --- /dev/null +++ b/1614080902227/wx/pages/logs/logs.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "查看启动日志" +} \ No newline at end of file diff --git a/1614080902227/wx/pages/logs/logs.wxml b/1614080902227/wx/pages/logs/logs.wxml new file mode 100644 index 000000000..b5a85ac67 --- /dev/null +++ b/1614080902227/wx/pages/logs/logs.wxml @@ -0,0 +1,6 @@ + + + + {{index + 1}}. {{log}} + + diff --git a/1614080902227/wx/pages/logs/logs.wxss b/1614080902227/wx/pages/logs/logs.wxss new file mode 100644 index 000000000..94d4b88a2 --- /dev/null +++ b/1614080902227/wx/pages/logs/logs.wxss @@ -0,0 +1,8 @@ +.log-list { + display: flex; + flex-direction: column; + padding: 40rpx; +} +.log-item { + margin: 10rpx; +} diff --git a/1614080902227/wx/pages/setpage/setpage.js b/1614080902227/wx/pages/setpage/setpage.js new file mode 100644 index 000000000..d78af5a5e --- /dev/null +++ b/1614080902227/wx/pages/setpage/setpage.js @@ -0,0 +1,30 @@ +App({ + + /** + * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) + */ + onLaunch: function () { + + }, + + /** + * 当小程序启动,或从后台进入前台显示,会触发 onShow + */ + onShow: function (options) { + + }, + + /** + * 当小程序从前台进入后台,会触发 onHide + */ + onHide: function () { + + }, + + /** + * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息 + */ + onError: function (msg) { + + } +}) diff --git a/1614080902227/wx/pages/setpage/setpage.json b/1614080902227/wx/pages/setpage/setpage.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/1614080902227/wx/pages/setpage/setpage.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/1614080902227/wx/pages/setpage/setpage.wxml b/1614080902227/wx/pages/setpage/setpage.wxml new file mode 100644 index 000000000..e69de29bb diff --git a/1614080902227/wx/pages/setpage/setpage.wxss b/1614080902227/wx/pages/setpage/setpage.wxss new file mode 100644 index 000000000..da4afff81 --- /dev/null +++ b/1614080902227/wx/pages/setpage/setpage.wxss @@ -0,0 +1 @@ +/* pages/mainpage/mainpage.wxss */ \ No newline at end of file diff --git a/1614080902227/wx/project.config.json b/1614080902227/wx/project.config.json new file mode 100644 index 000000000..e8bebc3d4 --- /dev/null +++ b/1614080902227/wx/project.config.json @@ -0,0 +1,40 @@ +{ + "description": "项目配置文件", + "packOptions": { + "ignore": [] + }, + "setting": { + "urlCheck": true, + "es6": true, + "postcss": true, + "minified": true, + "newFeature": true, + "autoAudits": false + }, + "compileType": "miniprogram", + "libVersion": "2.4.0", + "appid": "wx159db5ad511ee6bd", + "projectname": "wechatlittle", + "debugOptions": { + "hidedInDevtools": [] + }, + "isGameTourist": false, + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "game": { + "currentL": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] + } + } +} \ No newline at end of file diff --git a/1614080902227/wx/utils/util.js b/1614080902227/wx/utils/util.js new file mode 100644 index 000000000..dbadbb810 --- /dev/null +++ b/1614080902227/wx/utils/util.js @@ -0,0 +1,19 @@ +const formatTime = date => { + const year = date.getFullYear() + const month = date.getMonth() + 1 + const day = date.getDate() + const hour = date.getHours() + const minute = date.getMinutes() + const second = date.getSeconds() + + return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') +} + +const formatNumber = n => { + n = n.toString() + return n[1] ? n : '0' + n +} + +module.exports = { + formatTime: formatTime +}