网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

簡化微信小程序用戶授權

發布時間:2020-05-20 09:54 所屬欄目:小程序開發教程

在開發小程序中,獲取用戶授權是一個繁瑣的步驟,覺得不錯,請點贊哦

相關API

wx.getSetting({
  success (res) {
    console.log(res.authSetting)
    // res.authSetting = {
    //   "scope.userInfo": true,
    //   "scope.userLocation": true
    // }
  }
})
復制代碼
// 可以通過 wx.getSetting 先查詢一下用戶是否授權了 "scope.record" 這個 scope
wx.getSetting({
  success(res) {
    if (!res.authSetting['scope.record']) {
      wx.authorize({
        scope: 'scope.record',
        success () {
          // 用戶已經同意小程序使用錄音功能,后續調用 wx.startRecord 接口不會彈窗詢問
          wx.startRecord()
        }
      })
    }
  }
})
復制代碼

Promisify相關API

微信小程序的API都是回調函數,一不小心就是回調地獄。我們可以用Promise封裝下

const promisify = fn=>(arg={})=>new Promise((resolve,reject)=>{
  arg.success=function(res){
    resolve(res)
  }
  arg.fail=function(err){
    reject(err)
  }
  fn(arg)
})
復制代碼

使用:

const wxGetSetting = promisify(wx.getSetting)
wxGetSetting().then(res=>console.log(res))
復制代碼

解釋

// promisify接受一個fn函數
const promisify = function(fn){
// promisify返回一個函數,這個函數可以接受一個arg參數
// arg默認是空對象,因為微信小程序api都是接受一個對象參數的
  return function(arg={}){
    // 該參數執行后,返回一個promise對象
    return new Promise((resolve,reject)=>{
      // 給參數加上success和fail
      arg.success=function(res){
        resolve(res)
      }
      arg.fail=function(fail){
        reject(fail)
      }
      // 執行fn
      fn(arg)// fn是傳進來的wx.getSetting
    })
  }
}
復制代碼

簡化授權

const wxGetSetting = promisify(wx.getSetting)
const wxAuthorize = promisify(wx.authorize)
function myAuthorize(authSetting) {
    return new Promise((resolve, reject) => {
        wxGetSetting().then(res => {
            if (res.authSetting[authSetting]) {
                resolve("ok")
            } else {
                return wxAuthorize({
                    scope: authSetting
                }).then(res => {
                    resolve("ok")
                }).catch(err => {
                    reject("fail")
                })
            }
        })

    })
}
復制代碼

使用:

myAuthorize("scope.userLocation")
  .then(res=>console.log(res))
	.catch(err=>console.log(err))
復制代碼
 


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/25230.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×