小程序授權(quán)

大家好,我是IT修真院深圳分院第07期學(xué)員,一枚正直善良的web程序員。

今天給大家分享一下,修真院官網(wǎng) JS-11任務(wù)中可能會使用到的知識點:


1.背景介紹


說到這,我們需要先了解一下微信小程序是啥?簡單說,它就是一個可以實現(xiàn)之前只能是原生態(tài)APP可以實現(xiàn)的效果和功能。比如說,一些酷炫的頁面與轉(zhuǎn)場,一些可以直接和手機硬件交互的功能,錄音啊,拍視頻啊,調(diào)用手機的重力感應(yīng)啊,GPS啊等等。

從目前來講,APP比手機網(wǎng)頁好,手機網(wǎng)頁比電腦網(wǎng)頁好。手機網(wǎng)頁在電腦上看起來還行,但需要我們輸入網(wǎng)址域名,這在電腦上還好操作,在手機上,簡單是讓人抓狂。

雖然APP在體驗上非常突出,但需要安裝,需要消耗流量,占用手機有限的桌面空間。這種麻煩程序,甚至超出了APP的優(yōu)勢本身。

從這里就能看出微信小程序的好處了

1,不用安裝,即開即用,用完就走。省流量,省安裝時間,不占用桌面;
2,體驗上雖然沒法完全媲美原生APP,但綜合考慮還是更優(yōu);
3,對于小程序擁有者來說,開發(fā)成本更低,他們可以更多財力,人力,精力放在如何運營好產(chǎn)品,做好內(nèi)容本身;
4,對于用戶來說,相較于各種APP,微信小程序UI和操作流程會更統(tǒng)一。這也會降低用戶的使用難度;
5,對于小程序擁有者來說,相較于原生APP,推廣更容易更簡單,更省成本。

2.知識剖析


2.1 授權(quán)


部分接口需要獲得用戶授權(quán)同意后才能調(diào)用。此類接口調(diào)用時:
如果用戶未接受或拒絕過此權(quán)限,會彈窗詢問用戶,用戶點擊同意后方可調(diào)用接口;
如果用戶已授權(quán),可以直接調(diào)用接口;
如果用戶已拒絕授權(quán),則短期內(nèi)不會出現(xiàn)彈窗,而是直接進入接口 fail 回調(diào)。請開發(fā)者兼容用戶拒絕授權(quán)的場景。


獲取授權(quán)信息

開發(fā)者可以使用 wx.getSetting 獲取用戶當(dāng)前的授權(quán)狀態(tài)。

wx.getSetting(OBJECT)獲取用戶的當(dāng)前設(shè)置。
注:返回值中只會出現(xiàn)小程序已經(jīng)向用戶請求過的權(quán)限。

Object 參數(shù)說明:
success Function 不是必要 接口調(diào)用成功的回調(diào)函數(shù),返回內(nèi)容詳見返回參數(shù)說明。

fail Function 否 接口調(diào)用失敗的回調(diào)函數(shù)

complete Function 否 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success返回參數(shù)說明:
authSetting Object 用戶授權(quán)結(jié)果,其中 key 為 scope 值,value 為 Bool 值,表示用戶是否允許授權(quán),詳見 scope 列表

示例代碼:

wx.getSetting({
  success: (res) => {
    /*
     * res.authSetting = {
     *   "scope.userInfo": true,
     *   "scope.userLocation": true
     * }
     */
  }
})

2.2 scope表


這里介紹8種:用戶信息、地理位置、通訊地址、發(fā)票抬頭、微信運動步數(shù)、錄音功能、保存到相冊、攝像頭

用戶信息

scope: scope.userInfo
對應(yīng)接口 wx.getUserInfo

地理位置

scope:scope.userLocation
對應(yīng)接口wx.getLocation, wx.chooseLocation

通訊地址

scope: scope.address
對應(yīng)接口wx.chooseAddress

發(fā)票抬頭

scope:scope.invoiceTitle
對應(yīng)接口wx.chooseInvoiceTitle

微信運動步數(shù)

注:這里需要關(guān)注微信運動公眾號,來獲取用戶的信息
scope:scope.werun
對應(yīng)接口wx.getWeRunData

錄音功能

scope:scope.record
對應(yīng)接口 wx.startRecord

保存到相冊

scope.writePhotosAlbum
wx.saveImageToPhotosAlbum, wx.saveVideoToPhotosAlbum

攝像頭

scope.camera

3.常見問題


如果用戶拒絕授權(quán)該怎么辦?

4.解決方案


fail:function(){
        wx.showModal({
          title: '警告',
          content: '你點擊了拒絕授權(quán)將無法顯示你的位置信息,點擊確定重新獲取授權(quán)。',
          success: function(res){
            if(res.confirm) {
              wx.openSetting({
                success:(res) => {
                  if (res.authSetting["scope.userLocation"]){
                    wx.getLocation({
                      success: function(res) {
                        that.setData({
                          position: res
                        })
                      },
                    })
                  }
                }
              })
            }
          }
        })
      }

當(dāng)用戶拒絕授權(quán)時,彈出模態(tài)框來引導(dǎo)用戶進入設(shè)置授權(quán)頁面

5.編碼實戰(zhàn)


6.拓展思考

可以在什么地方安置獲取授權(quán)的按鈕?

比如在直播小程序中,可以設(shè)置當(dāng)用戶發(fā)表評論時,獲取用戶的頭像信息和名稱,然后調(diào)用發(fā)表。

7.參考文獻


微信公共平臺——授權(quán):https://developers.weixin.qq.com/miniprogram/dev/api/authorize-index.html

用戶拒絕授權(quán)CSDN:https://blog.csdn.net/qq_28189091/article/details/75417073

8.更多討論


1、小程序如何實現(xiàn)雙向綁定

可以先定義data,然后利用this.setData來更改data值,比如綁定到一個變量上,當(dāng)變量更改,data也隨著更改,實現(xiàn)雙向綁定

2、小程序授權(quán)后能夠?qū)崿F(xiàn)的功能

比如獲取當(dāng)前位置信息來定位滴滴打車司機與顧客間的位置,或者是請求發(fā)票抬頭,來快速生成電子發(fā)票。還可以利用微信運動步數(shù)來實現(xiàn)健康監(jiān)控。

3、請求授權(quán)可以綁定在那些標(biāo)簽上

理論上都可以綁定,但最好是綁定在button上,比較直觀,且方便重復(fù)點擊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容