Teams App设备的地理位置能力
我們上一篇文章講了如何在Teams app里掃描二維碼,這篇文章我們來(lái)看一下如何獲取當(dāng)前設(shè)備的地理位置,并且在地圖上顯示地理位置。
首先,我們先到app studio里,創(chuàng)建一個(gè)teams app,然后創(chuàng)建tab,并且確保我們勾選了 “Permission to return the user’s location” 這個(gè)選項(xiàng)。
或者我們手動(dòng)在manifest.json里輸入這么一段:
{"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.10/MicrosoftTeams.schema.json","manifestVersion": "1.10",..."devicePermissions": ["media",],... }地理位置的 API 有兩塊:
獲取設(shè)備的地理位置
我們先來(lái)看一下這個(gè)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 = '當(dāng)前平臺(tái)不支持此API';break;case 500: // INTERNAL_ERRORerrorMessage = '內(nèi)部錯(cuò)誤';break;case 1000: // PERMISSION_DENIEDerrorMessage = '權(quán)限被用戶(hù)拒絕';break;case 4000: // INVALID_ARGUMENTSerrorMessage = '參數(shù)錯(cuò)誤';break;case 8000: // USER_ABORTerrorMessage = '用戶(hù)取消操作';break;case 9000: // OLD_PLATFORMerrorMessage = '平臺(tái)太老,不支持此API';break;default:errorMessage = '未知錯(cuò)誤';break;}output('發(fā)生錯(cuò)誤:' + errorMessage + ' ' + extraErrorMessage);}output(JSON.stringify(location));} );大家可以看到,代碼的基本結(jié)構(gòu)和上一篇的掃描二維碼十分類(lèi)似,不同的是配置,api名字和出錯(cuò)代碼。那我們來(lái)看一下這個(gè)配置。
const locationProps = { "allowChooseLocation": true, "showMap": true };- allowChooseLocation
如果這個(gè)值為 true,代表用戶(hù)可以自由的選擇一個(gè)用戶(hù)希望的地理位置,比如我們開(kāi)發(fā)一個(gè)查詢(xún)餐館的app,既可以讓用戶(hù)選擇當(dāng)前位置,也可以讓用戶(hù)選擇一個(gè)他希望的位置,這種場(chǎng)景下,我們就應(yīng)該把這個(gè)設(shè)置成 true。如果我們開(kāi)發(fā)一個(gè)簽到的app,那我們不想讓用戶(hù)自己選擇當(dāng)前位置,我們就把這個(gè)設(shè)置成 false,這樣teams直接就給我們這個(gè)app當(dāng)前的位置,不讓用戶(hù)自由選擇了。
- showMap
如果這個(gè)選項(xiàng)是 false,代表了teams不會(huì)顯示地圖。值得注意的一點(diǎn)是:如果 allowChooseLocation 是 true,那么這個(gè)選項(xiàng)會(huì)被忽略掉。
在地圖上顯示地理位置
顯示位置的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 = '當(dāng)前平臺(tái)不支持此API';break;case 500: // INTERNAL_ERRORerrorMessage = '內(nèi)部錯(cuò)誤';break;case 1000: // PERMISSION_DENIEDerrorMessage = '權(quán)限被用戶(hù)拒絕';break;case 4000: // INVALID_ARGUMENTSerrorMessage = '參數(shù)錯(cuò)誤';break;case 8000: // USER_ABORTerrorMessage = '用戶(hù)取消操作';break;case 9000: // OLD_PLATFORMerrorMessage = '平臺(tái)太老,不支持此API';break;default:errorMessage = '未知錯(cuò)誤';break;}output('發(fā)生錯(cuò)誤:' + errorMessage + ' ' + extraErrorMessage);}output(result);} );這個(gè)api比較簡(jiǎn)單,相信大家一看就明白了,直接傳入地理位置的經(jīng)度緯度。
總結(jié)
以上是生活随笔為你收集整理的Teams App设备的地理位置能力的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面试 - 智力测试
- 下一篇: c语言的万能头文件,C/C 头文件太难记