Teams App設備的地理位置能力

我們上一篇文章講了如何在Teams app里掃描二維碼,這篇文章我們來看一下如何獲取當前設備的地理位置,并且在地圖上顯示地理位置。

首先,我們先到app studio里,創建一個teams app,然后創建tab,并且確保我們勾選了 “Permission to return the user’s location” 這個選項。

DeviceLocation

或者我們手動在manifest.json里輸入這么一段:

{"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.10/MicrosoftTeams.schema.json","manifestVersion": "1.10",..."devicePermissions": ["media",],...
}

地理位置的 API 有兩塊:

獲取設備的地理位置

我們先來看一下這個api如果使用:

const locationProps = { "allowChooseLocation": true, "showMap": true };microsoftTeams.location.getLocation(locationProps,(err: microsoftTeams.SdkError, location: microsoftTeams.location.Location) =>{if (error) {const extraErrorMessage = error.message ?? '';let errorMessage;switch (error.errorCode) {case 100: // NOT_SUPPORTED_ON_PLATFORMerrorMessage = '當前平臺不支持此API';break;case 500: // INTERNAL_ERRORerrorMessage = '內部錯誤';break;case 1000: // PERMISSION_DENIEDerrorMessage = '權限被用戶拒絕';break;case 4000: // INVALID_ARGUMENTSerrorMessage = '參數錯誤';break;case 8000: // USER_ABORTerrorMessage = '用戶取消操作';break;case 9000: // OLD_PLATFORMerrorMessage = '平臺太老,不支持此API';break;default:errorMessage = '未知錯誤';break;}output('發生錯誤:' + errorMessage + ' ' + extraErrorMessage);}output(JSON.stringify(location));}
);

大家可以看到,代碼的基本結構和上一篇的掃描二維碼十分類似,不同的是配置,api名字和出錯代碼。那我們來看一下這個配置。

const locationProps = { "allowChooseLocation": true, "showMap": true };
  • allowChooseLocation

如果這個值為 true,代表用戶可以自由的選擇一個用戶希望的地理位置,比如我們開發一個查詢餐館的app,既可以讓用戶選擇當前位置,也可以讓用戶選擇一個他希望的位置,這種場景下,我們就應該把這個設置成 true。如果我們開發一個簽到的app,那我們不想讓用戶自己選擇當前位置,我們就把這個設置成 false,這樣teams直接就給我們這個app當前的位置,不讓用戶自由選擇了。

  • showMap

如果這個選項是 false,代表了teams不會顯示地圖。值得注意的一點是:如果 allowChooseLocation 是 true,那么這個選項會被忽略掉。

在地圖上顯示地理位置

顯示位置的api使用如下:

const location = { "latitude": 31.224361, "longitude": 121.469170 };microsoftTeams.location.showLocation(location,(err: microsoftTeams.SdkError, result: boolean) =>{if (error) {const extraErrorMessage = error.message ?? '';let errorMessage;switch (error.errorCode) {case 100: // NOT_SUPPORTED_ON_PLATFORMerrorMessage = '當前平臺不支持此API';break;case 500: // INTERNAL_ERRORerrorMessage = '內部錯誤';break;case 1000: // PERMISSION_DENIEDerrorMessage = '權限被用戶拒絕';break;case 4000: // INVALID_ARGUMENTSerrorMessage = '參數錯誤';break;case 8000: // USER_ABORTerrorMessage = '用戶取消操作';break;case 9000: // OLD_PLATFORMerrorMessage = '平臺太老,不支持此API';break;default:errorMessage = '未知錯誤';break;}output('發生錯誤:' + errorMessage + ' ' + extraErrorMessage);}output(result);}
);

這個api比較簡單,相信大家一看就明白了,直接傳入地理位置的經度緯度。

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

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

相關文章

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

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

Teams App如何選擇用戶

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

Python終端如何輸出彩色字體

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

ID4收藏

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

Teams Bot庫的JSON

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

碼云如何上傳代碼

1.在碼云上創建一個項目,具體操作很簡單就不多說了 2.創建本地倉庫 在本地創建一個test文件夾,文件夾里右鍵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游標移動到文字編輯的開…

QCustomplot(一) 能做什么事

閱讀目錄 一、QCustomPlot簡介二、效果預覽三、源碼下載四、相關文章回到頂部一、QCustomPlot簡介 之前在Qt之自繪制餅圖這篇文章的說明中我簡單的描述了下目前依賴于qt的第三方繪圖庫&#xff0c;此后我會針對自己使用QCustomPlot的情況做一總結&#xff0c;以方便大家參考 QC…

在Teams app代碼中enable nullable

昨天講了一下如何把代碼升級到 net6&#xff0c;今天我優化了好幾個小時更新代碼&#xff0c;enable了nullable。 c#的nullable我一直非常喜歡&#xff0c;它可以幫助開發人員&#xff0c;讓開發人員去思考&#xff0c;哪些地方需要可以為null&#xff0c;哪些地方不需要。它并…

shiro(一)簡介、理論知識

2019獨角獸企業重金招聘Python工程師標準>>> 開濤學shiro&#xff1a;http://jinnianshilongnian.iteye.com/blog/2018398 shirospirngmvc參考: https://www.cnblogs.com/sharpest/p/5865732.html http://peirenlei.iteye.com/blog/2086639 https://blog.csdn.net/c…

2019.04.24筆記

*&#xff09;關于swing 今天同學誤解了我的意思&#xff0c;以為我要用java代碼做頁面和圖形&#xff0c;給我推薦了swing。 swing真是眼熟&#xff0c;大學課程里的。通過后臺代碼操作頁面和圖形。記得當年大學時&#xff0c;swing就已經淪為一種過時的技術了。到現在&#x…

Teams 的 Meeting App

Teams 的 Meeting App 已經正式推出了一段時間&#xff0c;相應的文檔也已經較為完善了&#xff0c;我接下來會寫一系列的文章&#xff0c;來介紹如何開發一個自己的Meeting app。這篇文章作為這個系列的第一篇&#xff0c;將介紹 meeting app 是如何被使用的&#xff0c;有哪些…

Github上最受歡迎的Python輕量級框架Flask入門

flask最近終于發布了它的1.0版本更新&#xff0c;從項目開源到最近的1.0版本flask已經走過了8個年頭。# app.py from flask import Flask app Flask(__name__)app.route("/") def hello():return "Hello World!"if __name__ "__main__":app.ru…

mysql表關聯

mysql的表關聯&#xff1a; left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner join(等值連接) 只返回兩個表中聯結字段相等的行 轉載于:https://www.cnblogs.com/bloghua…

開發第一個Meeting App

今天我們來看一下如何使用c# net6 來開發一個 teams的 meeting app。首先先確保本地安裝了最新版本的 net6。創建一個目錄&#xff0c;然后在目錄下輸入下面的命令行&#xff0c;讓 dotnet 來生成一個初步的asp.net core 代碼框架。 dotnet new razor代碼框架生成如下的目錄和…