我分享給別人一個小程序連接,別人點擊手機上分享的連接后,沒有調取小程序app.js中的 wx.getUserInfo方法。請問如何能調取到?或者提供一個改進方案。 我在點擊連接的頁面寫的代碼是,<view class='login_desc'>為了給您更好的服務請先登錄</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) { // 設備信息 wx.getSystemInfo({ success: function (res) { console.log(res) } }) // 場景值 // console.log(options.scene) // 登錄 wx.login({ success: res => { // 發送 res.code 到后臺換取 openId, sessionKey, unionId const code = res.code; // 請求參數 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; // 調用userInfo this.getUserInfo(res.data.data); }); } }) }, getUserInfo(session_id){ // 獲取用戶信息 console.log(session_id) wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { // 這里不能使用util里面的方法,導致了循環引用 // 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框 wx.getUserInfo({ success: res => { // 可以將 res 發送給后臺解碼出 unionId this.globalData.userInfo = res.userInfo console.log(this.globalData.userInfo) // 由于 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回 // 所以此處加入 callback 以防止這種情況 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } // 由于愚蠢的錯誤 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(`后臺返回用戶信息${JSON.stringify(res)}`); }); } }) } } }) }, globalData: { userInfo: null } }) |