国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

微信小程序部分功能需要使用授權(quán)(也就是需要用戶(hù)顯式同意,系統(tǒng)會(huì)阻止開(kāi)發(fā)者任何靜默獲取授權(quán)行為),以存儲(chǔ)相冊(cè)為例,用戶(hù)需要獲得"scope.writePhotosAlbum"權(quán)限
微信系統(tǒng)接口wx.getSetting可以獲取已經(jīng)獲得的權(quán)限列表

    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.writePhotosAlbum']) {
          // 已獲得存儲(chǔ)相冊(cè)授權(quán)
        }
        else {
          // 未獲得存儲(chǔ)相冊(cè)授權(quán)
        }
      }
    }

在實(shí)際開(kāi)發(fā)時(shí),我們有時(shí)候并不會(huì)去特意處理權(quán)限,直接調(diào)用接口函數(shù),也是可以成功的

// 不做任何處理,直接調(diào)用存儲(chǔ)相冊(cè)
wx.saveImageToPhotosAlbum({...}

系統(tǒng)會(huì)在第一次需要存儲(chǔ)相冊(cè)權(quán)限時(shí)詢(xún)問(wèn)用戶(hù)是否授權(quán)
微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)
這樣做大部分時(shí)候也夠了,但會(huì)有點(diǎn)小瑕疵,如果用戶(hù)用第一次點(diǎn)了“拒絕”,再調(diào)用存儲(chǔ)接口永遠(yuǎn)都不會(huì)拉起授權(quán)提示了,這時(shí)候用戶(hù)只能通過(guò)右上角三個(gè)點(diǎn)打開(kāi)權(quán)限設(shè)置頁(yè),主動(dòng)給予權(quán)限才能順利執(zhí)行

網(wǎng)上很多關(guān)于處理拒絕授權(quán)全流程的文章已經(jīng)過(guò)時(shí)了,其中關(guān)鍵是通過(guò)wx.authorize拉起授權(quán),現(xiàn)在這個(gè)接口是不會(huì)成功的
微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)
微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)
以上兩則案例在沒(méi)有授權(quán)時(shí),通過(guò)wx.authorize拉起授權(quán)無(wú)法成功拉起授權(quán),進(jìn)入fail后只能通過(guò)modal對(duì)話(huà)框拉起設(shè)置頁(yè)
微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)
打開(kāi)設(shè)置頁(yè)是可以避免modal對(duì)話(huà)框的,如果在按鈕的回調(diào)函數(shù)中直接調(diào)用wx.openSetting是可以成功打開(kāi)設(shè)置頁(yè)的。以上代碼增加了wx.authorize回調(diào),在wx.authorize授權(quán)失敗回調(diào)中調(diào)用wx.openSetting,系統(tǒng)會(huì)判定開(kāi)發(fā)者企圖靜默提示權(quán)限,是不被允許的。所以調(diào)用了wx.authorize,反而會(huì)導(dǎo)致我們打開(kāi)wx.openSetting需要經(jīng)過(guò)一個(gè)modal對(duì)話(huà)框過(guò)渡。
那么正確的做法應(yīng)該是:

  1. 已經(jīng)授權(quán),直接存儲(chǔ);
  2. 沒(méi)有授權(quán),直接打開(kāi)設(shè)置授權(quán)頁(yè)
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.writePhotosAlbum']) {
          // 已經(jīng)獲得授權(quán),直接存儲(chǔ)
          that.saveImg();
        }
        else {
          // 沒(méi)有獲得授權(quán),打開(kāi)設(shè)置頁(yè)
          wx.openSetting({
            //...
          })
        }
      }
    })

等等!打開(kāi)授權(quán)頁(yè)后發(fā)現(xiàn)授權(quán)選項(xiàng)是空的
微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)
原因很簡(jiǎn)單,我們沒(méi)有調(diào)用過(guò)任何需要授權(quán)的接口,小程序也不知道我們需要什么授權(quán)(小程序沒(méi)有配置頁(yè)設(shè)置需要的授權(quán)列表),顯然設(shè)置選項(xiàng)不可能把所有可能的授權(quán)都列出來(lái)。
問(wèn)題清楚了以后,完整解決方案如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490624.html

  1. 已授權(quán),直接存儲(chǔ)
  2. 未授權(quán)(第一次運(yùn)行),直接存儲(chǔ),讓系統(tǒng)一次性提示用戶(hù)授權(quán)
  3. 未授權(quán)(用戶(hù)拒絕),直接打開(kāi)設(shè)置頁(yè)(授權(quán)列表已有授權(quán)記錄),讓用戶(hù)自行選擇授權(quán)
download() {
    this.setData({displayLoading: "inline-flex"})
    var that = this
    wx.getSetting({
      success(res) {
        if (res.authSetting['scope.writePhotosAlbum']) {
          // 已經(jīng)獲得授權(quán),直接存儲(chǔ)
          that.saveImg();
        }
        else if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
          // 第一次運(yùn)行,授權(quán)未定義,可以直接保存,系統(tǒng)會(huì)一次性詢(xún)問(wèn)用戶(hù)權(quán)限
          that.saveImg();
        }
        else {
          // 用戶(hù)拒絕授權(quán)后,打開(kāi)設(shè)置頁(yè)可以看到授權(quán)提示開(kāi)關(guān)
          wx.openSetting({
            success(res) { // 用戶(hù)授權(quán)
              if (res.authSetting['scope.writePhotosAlbum']) {
                that.saveImg();
              }
              else { // 用戶(hù)拒絕授權(quán)
                that.setData({displayLoading: "none"})
                wx.showToast({
                  title: '權(quán)限不足',
                })
              }
            },
            fail(res) {
              that.setData({displayLoading: "none"})
              wx.showToast({
                title: '設(shè)置失敗',
              })
            }
          })
        }
      },
      fail(res) {
        console.log(res)
        that.setData({displayLoading: "none"})
        wx.showToast({
          title: '設(shè)置失敗',
        })
      }
    })
  }

到了這里,關(guān)于微信小程序保存相冊(cè)授權(quán)全過(guò)程:第一次授權(quán)、已授權(quán)、拒絕后再授權(quán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包