欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序 同步請求授權(quán)的詳解

 更新時(shí)間:2017年08月04日 15:19:11   作者:xiaochun365  
這篇文章主要介紹了微信小程序 同步請求授權(quán)的詳解的相關(guān)資料,在小程序首次打開的時(shí)候,我需要同時(shí)請求獲取多個(gè)權(quán)限,由用戶逐一授權(quán),這樣的需求實(shí)現(xiàn),需要的朋友可以參考下

微信小程序 同步請求授權(quán)的詳解

需求分析:

1.在小程序首次打開的時(shí)候,我需要同時(shí)請求獲取多個(gè)權(quán)限,由用戶逐一授權(quán)。

([‘scope.userInfo',‘scope.userLocation',‘scope.address',‘scope.record',‘scope.writePhotosAlbum']) 

問題分析:

1. wx.authorize接口同時(shí)調(diào)用,請求多個(gè)權(quán)限,由于異步原因,將授權(quán)請求一并發(fā)出,顯然不符合要求。

2. promise能很好的解決問題,試著嘗試了一下,下面代碼分為兩個(gè)文件。

// scope.js
import es6 from '../helpers/es6-promise'

// 獲取用戶授權(quán)
function getScope(scopeName) {
 return new es6.Promise(function (resolve, reject) {
  // 查詢授權(quán)
  wx.getSetting({
   success(res) {
    if (!res.authSetting[scopeName]) {
     // 發(fā)起授權(quán)
     wx.authorize({
      scope: scopeName,
      success() {
       resolve(0)
      }, fail() {
       resolve(1)
      }
     })
    }
   }
  })
 })
}

module.exports = { getScope: getScope }

// index.js
import scope from "../../service/scope"
Page({
onShow() {
  let list = ["scope.userInfo", "scope.userLocation", "scope.address", "scope.record"];
  // 記錄請求結(jié)果
  let num = 0;
  // 問題1:怎么改成循環(huán)方式?
  scope.getScope(list[0]).then(function (res) {
   num += res;
   scope.getScope(list[1]).then(function (res) {
    num += res;
    scope.getScope(list[2]).then(function (res) {
     num += res;
     scope.getScope(list[3]).then(function (res) {
      num += res;
      // 調(diào)起設(shè)置界面
      if (num) {
       wx.openSetting({
        success(res) {
         // 允許獲取用戶信息
         if (res.authSetting["scope.userInfo"])
          userService.login()
        }
       })
      } else {
       userService.login()
      }
     })
    })
   })
  })
})

分析求解:

1.代碼中問題1寫法過于笨,但是嘗試通過循環(huán)方式調(diào)用寫法,又不知道如何處理回調(diào)問題。

2.wx.authorize接口,success參數(shù)官方給出的解釋是(接口調(diào)用成功的回調(diào)函數(shù)),其實(shí)不然,實(shí)際上是接口調(diào)用成功,并且獲取到了scope指定的權(quán)限

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解

    微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解

    這篇文章主要介紹了微信小程序中使用Promise進(jìn)行異步流程處理的實(shí)例詳解的相關(guān)資料,這里詳細(xì)說明該如何使用Promise 來進(jìn)行異步流程的處理,提供具體實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • JavaScript原型鏈詳解

    JavaScript原型鏈詳解

    這篇文要給大家介紹的是JavaScript原型鏈,文章主要介紹內(nèi)容有構(gòu)造函數(shù)、屬性Prototype、屬性Prototype、屬性__proto__、訪問原型上的方法等問題,需要的朋友可以參考一下文章的詳細(xì)內(nèi)容
    2021-11-11
  • You-Dont-Know-JS作用域?qū)W習(xí)文檔

    You-Dont-Know-JS作用域?qū)W習(xí)文檔

    這篇文章主要介紹了You-Dont-Know-JS作用域?qū)W習(xí)文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • JS繼承與工廠構(gòu)造及原型設(shè)計(jì)模式詳解

    JS繼承與工廠構(gòu)造及原型設(shè)計(jì)模式詳解

    這篇文章主要為大家介紹了JS繼承與工廠構(gòu)造及原型設(shè)計(jì)模式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • JavaScript 對象創(chuàng)建的3種方法

    JavaScript 對象創(chuàng)建的3種方法

    這篇文章主要給大家分享的時(shí)JavaScript 對象創(chuàng)建的3種方法,在 JavaScript中,對象是一組有屬性名和屬性值組成的無序集合,對象的創(chuàng)建可以通過對象字面量、new 關(guān)鍵字 和Object.create()函數(shù)來創(chuàng)建。
    2021-11-11
  • 微信小程序 本地存儲及登錄頁面處理實(shí)例詳解

    微信小程序 本地存儲及登錄頁面處理實(shí)例詳解

    這篇文章主要介紹了微信小程序 本地存儲實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • HTML TO JavaScript 轉(zhuǎn)換

    HTML TO JavaScript 轉(zhuǎn)換

    HTML TO JavaScript 轉(zhuǎn)換...
    2006-06-06
  • Servlet3.0與純javascript通過Ajax交互的實(shí)例詳解

    Servlet3.0與純javascript通過Ajax交互的實(shí)例詳解

    Servlet與純javascript通過Ajax交互,對于很多人來說應(yīng)該很簡單。不過還是寫寫,方便Ajax學(xué)習(xí)的后來者
    2018-03-03
  • CryptoJs常規(guī)密碼加密demo

    CryptoJs常規(guī)密碼加密demo

    這篇文章主要為大家介紹了CryptoJs常規(guī)密碼加密的實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 微信小程序 上傳頭像的實(shí)例詳解

    微信小程序 上傳頭像的實(shí)例詳解

    這篇文章主要介紹了微信小程序 上傳頭像的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10

最新評論