我分享給別人一個(gè)小程序連接,別人點(diǎn)擊手機(jī)上分享的連接后,沒(méi)有調(diào)取小程序app.js中的 wx.getUserInfo方法。請(qǐng)問(wèn)如何能調(diào)取到?或者提供一個(gè)改進(jìn)方案。 我在點(diǎn)擊連接的頁(yè)面寫(xiě)的代碼是,<view class='login_desc'>為了給您更好的服務(wù)請(qǐng)先登錄</view> <button class='main_btn login_btn' open-type="getUserInfo"bindgetuserinfo="ongetuserinfo">登錄</button> app.js代碼是 const { request} = require('./utils/request.js') const { login, getUserInfo} = require('./utils/address.js') App({ onLaunch: function (options) { // 設(shè)備信息 wx.getSystemInfo({ success: function (res) { console.log(res) } }) // 場(chǎng)景值 // console.log(options.scene) // 登錄 wx.login({ success: res => { // 發(fā)送 res.code 到后臺(tái)換取 openId, sessionKey, unionId const code = res.code; // 請(qǐng)求參數(shù) const url = login; const data = { code:code }; const method = 'GET'; // 獲取 openid and session_key request(url, data, method, res=>{ // 保存全局 this.globalData.session_key = res.data.data; // 調(diào)用userInfo this.getUserInfo(res.data.data); }); } }) }, getUserInfo(session_id){ // 獲取用戶信息 console.log(session_id) wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 這里不能使用util里面的方法,導(dǎo)致了循環(huán)引用 // 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會(huì)彈框 wx.getUserInfo({ success: res => { // 可以將 res 發(fā)送給后臺(tái)解碼出 unionId this.globalData.userInfo = res.userInfo console.log(this.globalData.userInfo) // 由于 getUserInfo 是網(wǎng)絡(luò)請(qǐng)求,可能會(huì)在 Page.onLoad 之后才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } // 由于愚蠢的錯(cuò)誤 const { nickName, gender, avatarUrl, city, country, language, province } = res.userInfo; console.log(session_id) console.log(gender) console.log(avatarUrl) console.log(nickName) console.log(getUserInfo) request(getUserInfo, { sessionId: session_id, gender: gender, headImg: avatarUrl, nickname: nickName, }, 'POST', res => { // 獲取成功 console.log(`后臺(tái)返回用戶信息${JSON.stringify(res)}`); }); } }) } } }) }, globalData: { userInfo: null } }) |