Teams App 如何使用設備的能力

我們以前講到過,Teams有很多中可以擴展的方面,其中有一種是Tab,開發者可以開發一個web page/app,然后以tab的方式嵌入到teams里面。

除了基本的功能,這種tab也可以使用teams客戶端設備所帶的一些能力,比如:

  • 攝像頭
  • 麥克風
  • 相冊
  • 掃二維碼
  • 地理位置

有些這些能力,我們開發的tab就能完成更多更有趣的功能。這篇文章我們就來看看如何獲取這些能力。

首先,每個teams app有一個manifest.json來描述app的一些基本信息,同樣,我們需要在manifest里聲明我們app所需要的設備能力。

"devicePermissions": ["media","geolocation"
],
  • media 是指 “攝像頭”, “麥克風”, “話筒” 和 “相冊”
  • geolocation 是指 “獲取地理位置” 能力

目前Teams自帶的 app studio 界面里不支持這個功能,所以我們必須手動的編輯 manifest.json 文件,然后在管理team的界面里 “upload a custom app”。

上傳后,我們在設置里就可以看到 Teams 客戶端已經允許了這兩個設備能力

DeviceCapabilities

點擊我們的應用,也可以針對每一個應用進行權限的調整。

DeviceCapabilities

注意:到目前為止,Teams的網頁版本里還不支持,必須使用 Teams 客戶端

有了權限的聲明,我們接下來就可以在我們的web頁面里使用標準的HTML5 api檢查權限是否可用了

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來獲取當前用戶的地理位置信息:

navigator.geolocation.getCurrentPosition(function (position) {position.coords.latitude;position.coords.longitude;...
});

或者拍照:

microsoftTeams.media.captureImage((error: microsoftTeams.SdkError, files: microsoftTeams.media.File[]) => {...
});

設備能力權限的有效范圍

Teams目前的把設備能力權限的有效范圍控制在”登入會話”級別,什么意思呢?就是我在當前這個設備登入后,允許權限的設置只針對這個設備的這個登入會話,如果換一個設備,那這些權限還是需要用戶再次同意確認的。或者,如果你登出再登入,或者你切換租戶,這些權限也需要用戶再次同意確認。我個人覺得不同設備需要再次確認比較合理,但同一個設備登出登入或者切換租戶也需要再次確認,這個有點過于麻煩了。不知道Teams以后會不會更改這個設計。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277878.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277878.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277878.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實驗室3

實驗3.1 1 #include<stdio.h>2 int main()3 { long int sum,i;4 sum0;5 for(i22;i<1003;i20){6 sumsumi;7 }8 printf("sum%ld",sum);9 return 0; 10 } 11 1 #include<stdio.h>2 int main()3 { 4 long int…

寫出整潔的高效的js代碼

Variables:變量 使用有意義的可發音的變量名 Bad: var yyyymmdstr moment().format(YYYY/MM/DD);Good: var yearMonthDay moment().format(YYYY/MM/DD);使用可搜索的命名 在開發過程中&#xff0c;我們閱讀代碼的時間會遠遠超過編寫代碼的時間&#xff0c;因此保證代碼的可讀…

Teams App自定義

當我們開發的 app 被企業安裝后&#xff0c;有些企業挺希望能做一些自定義&#xff0c;如果把app的圖標改的更加符合企業風格一點&#xff0c;或者把app的名字改成讓本企業員工更容易理解一些&#xff0c;或者把app界面的主題色改成個企業風格更加搭配一些&#xff0c;或者對于…

實驗四:xl命令的常見子命令以及操作

實驗名稱&#xff1a; xl命令的常見子命令以及操作 實驗環境&#xff1a; 這里我們需要正常安裝一臺虛擬機&#xff0c;如下圖&#xff1a; 我們這里以一臺busybox為例&#xff0c;來進行這些簡單的常見的操作&#xff1b; 實驗要求&#xff1a; 這里我們準備了5個常見操作&…

Teams App 掃描二維碼

上篇文章我們講了如何在app的manifest里設置設備的權限&#xff0c;這篇文章我們來實際操作開發一個可以掃描二維碼的teams app。 首先&#xff0c;我們先到app studio里&#xff0c;創建一個teams app&#xff0c;然后創建tab&#xff0c;重要的一點是&#xff0c;我們確保ma…

關于我的知識星球服務

2019獨角獸企業重金招聘Python工程師標準>>> 今天剛開通了我的知識星球-攻城師在路上&#xff0c;歡迎大家加入&#xff0c;目前前50名按最低費用收費50元一年&#xff0c;后面會根據人數情況調整。 希望通過這么一個圈子&#xff0c;讓大家信息資源共享&#xff0c…

mysql8用戶管理

查看當前登錄用戶&#xff1a; 創建用戶&#xff1a; create user 用戶名主機地址 identified with mysql_native_password by 密碼; 修改密碼&#xff1a; alter user 用戶名主機地址 identified with mysql_native_password by 新密碼; 原因是&#xff1a;在mysql 5.7.9版本以…

Teams App設備的地理位置能力

我們上一篇文章講了如何在Teams app里掃描二維碼&#xff0c;這篇文章我們來看一下如何獲取當前設備的地理位置&#xff0c;并且在地圖上顯示地理位置。 首先&#xff0c;我們先到app studio里&#xff0c;創建一個teams app&#xff0c;然后創建tab&#xff0c;并且確保我們勾…

第4章 變量、作用域和內存問題

JavaScript高級程序設計第四章知識點梳理 1、基本類型值和引用類型值 基本類型值包括&#xff1a;Boolean、String、undefined、Number、Null 引用類型值&#xff1a;Object 注意&#xff1a;ECMAScript中所有函數的參數都是按值傳遞的。 2、延長作用域鏈 當執行流進入下列任何…

Teams App如何選擇用戶

當我們在開發app的時候&#xff0c;很多時候需要選擇一個用戶&#xff0c;比如我們開發一個審批的app&#xff0c;就要選擇審批人&#xff0c;所以這個app就需要實現選擇人的界面&#xff0c;而且需要獲取完整的用戶列表&#xff0c;但是要獲取完整的用戶列表又需要app擁有較高…

Python終端如何輸出彩色字體

Python終端如何輸出彩色字體 Python終端如何輸出彩色字體 實現過程&#xff1a;終端的字符顏色是用轉義序列控制的&#xff0c;是文本模式下的系統顯示功能&#xff0c;和具體的語言無關。轉義序列是以ESC開頭,即用\033來完成&#xff08;ESC的ASCII碼用十進制表示是27&#xf…

ID4收藏

IdentityServer4.Admin https://github.com/skoruba/IdentityServer4.Admin轉載于:https://www.cnblogs.com/superstar/p/10757886.html

Teams Bot庫的JSON

如果你和我一樣&#xff0c;一直使用最新的 asp.net core 來開發teams bot的應用&#xff0c;那么你就會發現當你使用最新的 LTS 3.1版本或者 5.0 版本或者最新的 6.0 版本&#xff0c;asp.net core 默認使用System.Text.Json庫&#xff0c;所以當你在處理 Teams 發送來的請求的…

碼云如何上傳代碼

1.在碼云上創建一個項目&#xff0c;具體操作很簡單就不多說了 2.創建本地倉庫 在本地創建一個test文件夾&#xff0c;文件夾里右鍵Git Bash Here, 進入git。 git init初始化本地倉庫 git add . 把所有文件添加到暫存區 git commit -m “推送備注” 這里是每次推送時候寫的…

v-if v-else-if v-else

1.代碼 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>測試</title><script src"https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script> </head> <body><div id"ap…

Teams Bot如何解析和發送 at 用戶

之前有好些看博客的開發者問我有什么較好的方法來解析 at 信息。用戶在channel里發消息給 bot 的時候&#xff0c;通常需要 at bot的名字&#xff0c;當然在消息文字中可能還會 at 其他用戶&#xff0c;比如 bot的名字是 MyBot&#xff0c;那 bot 收到的 Activity 里的 Text 值…

關于Elemet-ui組件Cascader中proper的配置問題

最近做一個地區的二級聯動用上了Cascader組件&#xff0c;但是我的城市數據結構跟他 options的默認的結構不太一樣&#xff1b; 默認的結構如下&#xff1a; 我的數據結構是&#xff1a; 先說我的解決辦法&#xff1a; 一看我的數據結構跟他默認的數據結構不對勁&#xff0c;我…

將Teams app升級到net6

net6 發布已經有一個多月了&#xff0c;因為我的LuckyDraw app是使用Azure app service&#xff0c;當時我查了一下app service還沒有ready&#xff0c;昨天我又查看了一下&#xff0c;發現app service已經默認裝了net6。 那就是時候升級我的LuckyDraw了&#xff0c;如果大家的…

作為程序猿,一定要知道的電腦快捷鍵和Eclipse快捷鍵

2019獨角獸企業重金招聘Python工程師標準>>> 轉載自&#xff1a;Java資源社區 1. F2 當你選中一個文件的話&#xff0c;這意味著“重命名”2. F5 刷新3. CTRLF5 強行刷新4. F12另存為5. Alt &#xff0b;F4 關閉程序6. Home首行7. Ctrl Home游標移動到文字編輯的開…