支付寶小程式開發練習-重構,在app.js獲取使用者資訊(二)
阿新 • • 發佈:2019-01-31
App({ getUserInfo(){ return new Promise((resovle,reject)=>{ if(this.userInfo) resovle(this.userInfo); //呼叫使用者授權 api 獲取使用者資訊 my.getAuthCode({ success:(authcode) =>{ console.info(authcode); my.getAuthUserInfo({ scopes: ['auth_user'], success: (res) => { this.userInfo = res; resovle(this.userInfo); }, fail:() =>{ reject({}); } }); }, fail:() =>{ reject({}); } }); }); }, onLaunch(options) { // 第一次開啟 // options.query == {number:1} console.info('App onLaunch'); }, onShow(options) { // 從後臺被 scheme 重新開啟 // options.query == {number:1} }, });
Index.js 中通過 呼叫 app.js 中定義的 getUserInfo 獲取使用者資訊,這樣只要需要獲取使用者資訊的頁面都可以呼叫這個函式
const app = getApp(); Page({ data: { src: '' }, imageError: function (e) { console.log('image 發生錯誤', e.detail.errMsg) }, imageLoad: function (e) { console.log('image 載入成功', e); }, onLoad(query) { // 頁面載入 }, onReady() { // 頁面載入完成 app.getUserInfo().then( user => this.setData({src: user.avatar}) ); }, onShow() { // 頁面顯示 }, onHide() { // 頁面隱藏 }, onUnload() { // 頁面被關閉 }, onTitleClick() { // 標題被點選 }, onPullDownRefresh() { // 頁面被下拉 }, onReachBottom() { // 頁面被拉到底部 }, onShareAppMessage() { // 返回自定義分享資訊 return { title: '校園碼', desc: '校園二維碼', path: 'pages/index/index', }; }, });