WeChatウィジェットのライセンス


公式ドキュメント
ライセンスインタフェースの一部は、呼び出すにはユーザーのライセンス同意を得る必要があります.これらのインタフェースを使用範囲別に複数のscopeに分け、ユーザーはscopeを許可することを選択し、1つのscopeに許可した後、対応するすべてのインタフェースを直接使用することができます.このようなインタフェースの呼び出し時:ユーザーがこの権限を受け入れていないか拒否した場合、窓を弾いてユーザーに尋ね、ユーザーは同意をクリックしてインタフェースを呼び出すことができる.ユーザーが許可されている場合は、インタフェースを直接呼び出すことができます.ユーザーがライセンスを拒否した場合、ポップアップウィンドウは表示されず、インタフェースfailコールバックに直接アクセスします.開発者は、ユーザーが許可を拒否したシーンと互換性を持ってください.
ウィジェットユーザー情報コンポーネントのサンプルコード(公式ドキュメント)





       
Page({
  data: {
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  onLoad: function() {
    //       
    wx.getSetting({
      success (res){
        if (res.authSetting['scope.userInfo']) {
          //     ,       getUserInfo       
          wx.getUserInfo({
            success: function(res) {
              console.log(res.userInfo)
            }
          })
        }
      }
    })
  },
  bindGetUserInfo (e) {
    console.log(e.detail.userInfo)
  }
  })

promiseパッケージを使用したwxリクエスト
othersRequest(type) { 
  return new Promise((resolve, reject) => {
        wx[type]({        
        success: (res => {
        resolve(res);        }),        
        fail: (res => {  
                 reject(res)        })      })    })  },
  checkAuthorize() {    return request.othersRequest('getSetting').then(res => {      if (res.authSetting['scope.userInfo']) {        app.globalData.isAuthorization = true;        this.getUserInfo();        apiService.wechatLogin();      } else {        app.globalData.isAuthorization = false;      }    }).catch(err => {      request.errorHander(err);    })  },
  getUserInfo() {    return request.othersRequest('getUserInfo').then(res => {      const userInfo = this.refactorUserInfo(res.userInfo);      app.globalData.userInfo = userInfo;      this.setUserInfo(userInfo);
    }).catch(err => {      request.errorHander(err);    })  },
  wechatLogin() {    
  return request.othersRequest('login').then(res => {      globalData.wxLoginCode = res.code;      
      })
      .catch(err => {      
      this.errorHander(err);    })  },