Teams App 如何使用设备的能力
我們以前講到過,Teams有很多中可以擴(kuò)展的方面,其中有一種是Tab,開發(fā)者可以開發(fā)一個web page/app,然后以tab的方式嵌入到teams里面。
除了基本的功能,這種tab也可以使用teams客戶端設(shè)備所帶的一些能力,比如:
- 攝像頭
- 麥克風(fēng)
- 相冊
- 掃二維碼
- 地理位置
有些這些能力,我們開發(fā)的tab就能完成更多更有趣的功能。這篇文章我們就來看看如何獲取這些能力。
首先,每個teams app有一個manifest.json來描述app的一些基本信息,同樣,我們需要在manifest里聲明我們app所需要的設(shè)備能力。
"devicePermissions": ["media","geolocation" ],- media 是指 “攝像頭”, “麥克風(fēng)”, “話筒” 和 “相冊”
- geolocation 是指 “獲取地理位置” 能力
目前Teams自帶的 app studio 界面里不支持這個功能,所以我們必須手動的編輯 manifest.json 文件,然后在管理team的界面里 “upload a custom app”。
上傳后,我們在設(shè)置里就可以看到 Teams 客戶端已經(jīng)允許了這兩個設(shè)備能力
點(diǎn)擊我們的應(yīng)用,也可以針對每一個應(yīng)用進(jìn)行權(quán)限的調(diào)整。
注意:到目前為止,Teams的網(wǎng)頁版本里還不支持,必須使用 Teams 客戶端
有了權(quán)限的聲明,我們接下來就可以在我們的web頁面里使用標(biāo)準(zhǔn)的HTML5 api檢查權(quán)限是否可用了
navigator.permissions.query({ name: 'camera' }); navigator.permissions.query({ name: 'microphone' }); navigator.permissions.query({ name: 'geolocation' });navigator.permissions.query({name:'geolocation'}).then(function(result) {if (result.state == 'granted') {// 可用} else if (result.state == 'prompt') {// 不可用} });然后我們就能使用如下的js來獲取當(dāng)前用戶的地理位置信息:
navigator.geolocation.getCurrentPosition(function (position) {position.coords.latitude;position.coords.longitude;... });或者拍照:
microsoftTeams.media.captureImage((error: microsoftTeams.SdkError, files: microsoftTeams.media.File[]) => {... });設(shè)備能力權(quán)限的有效范圍
Teams目前的把設(shè)備能力權(quán)限的有效范圍控制在”登入會話”級別,什么意思呢?就是我在當(dāng)前這個設(shè)備登入后,允許權(quán)限的設(shè)置只針對這個設(shè)備的這個登入會話,如果換一個設(shè)備,那這些權(quán)限還是需要用戶再次同意確認(rèn)的?;蛘?#xff0c;如果你登出再登入,或者你切換租戶,這些權(quán)限也需要用戶再次同意確認(rèn)。我個人覺得不同設(shè)備需要再次確認(rèn)比較合理,但同一個設(shè)備登出登入或者切換租戶也需要再次確認(rèn),這個有點(diǎn)過于麻煩了。不知道Teams以后會不會更改這個設(shè)計。
總結(jié)
以上是生活随笔為你收集整理的Teams App 如何使用设备的能力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 万能头文件!
- 下一篇: 《东周列国志》第三十回 秦晋大战龙门山