午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

簡化微信小程序用戶授權

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

在開發小程序中,獲取用(yong)戶授權是一(yi)個繁瑣(suo)的步驟,覺(jue)得不錯(cuo),請(qing)點贊哦

相關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都是(shi)回(hui)調(diao)函數,一不小心就是(shi)回(hui)調(diao)地獄。我們(men)可以用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))
復制代碼
 


易優小程(cheng)序(企業版)+靈活api+前后代碼開源 碼云倉(cang)庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/25230.html 復制鏈接 如需定(ding)制請聯系(xi)易優(you)客(ke)服咨(zi)詢:

工作日 8:30-12:00 14:30-18:00
周六及部分節假(jia)日提供值班服(fu)務(wu)

易小(xiao)優
轉人工 ×