大家好,我是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ù)點擊