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 客户端已经允许了这两个设备能力
点击我们的应用,也可以针对每一个应用进行权限的调整。
注意:到目前为止,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以后会不会更改这个设计。
Teams App 如何使用设备的能力相关推荐
- Teams App设备的地理位置能力
我们上一篇文章讲了如何在Teams app里扫描二维码,这篇文章我们来看一下如何获取当前设备的地理位置,并且在地图上显示地理位置. 首先,我们先到app studio里,创建一个teams app,然 ...
- Teams App 扫描二维码
上篇文章我们讲了如何在app的manifest里设置设备的权限,这篇文章我们来实际操作开发一个可以扫描二维码的teams app. 首先,我们先到app studio里,创建一个teams app,然 ...
- 面向全球用户的Teams app之时区篇
我在前两篇文章里分享了Global Ready的app时会遇到的不同文化的挑战.这篇我继续分享在时区方面的挑战. 时间是最复杂的,最容易出错的部分.时间复杂的最根本原因是时区问题. 首先,大家都知道, ...
- 一站式赋能智能厨电厨电场景App+云菜谱+多种通讯能力支持
Part1-厨电产品品类介绍 厨电产品品类介绍 按用途分为:食物准备.制备.烹饪.储藏. 厨房卫生五类食物准备:洗菜机.和面机.切片机.食 物处理机.打蛋器.搅拌器等:食物制备:挤汁器.酸奶机.爆米花 ...
- 使用环境变量来配置 Teams App 的 manifest
上篇文章我们介绍了 Teams 的 Developer Portal,今天我想分享一个dev portal里一个比较实用的功能.这个功能在之前的 App Studio 里没有.这个功能叫 Enviro ...
- 在Teams app代码中enable nullable
昨天讲了一下如何把代码升级到 net6,今天我优化了好几个小时更新代码,enable了nullable. c#的nullable我一直非常喜欢,它可以帮助开发人员,让开发人员去思考,哪些地方需要可以为 ...
- 将Teams app升级到net6
net6 发布已经有一个多月了,因为我的LuckyDraw app是使用Azure app service,当时我查了一下app service还没有ready,昨天我又查看了一下,发现app ser ...
- 主动给团队或用户安装Teams App
在写这篇文章的时候,这个新功能还处在 Public Review,这意味着可能(很小的可能性)这里写的方法在正式发布前还会有一些改动. 之前有一些做teams app开发的朋友问过我,能不能主动给一个 ...
- 使用Azure轻松实现Teams App的全球合规性
我在之前的一篇博客里面讲了合规性对于我们Teams app是非常重要的,因为office365平台就是面向全世界用户的,我们开发的teams app一旦发布后,立刻就会有各国各地区的用户来进行安装使用 ...
最新文章
- 【记录】解决uni-app 用nginx反向代理出现Invalid Host header问题
- idea ctrl+alt+t快捷键
- PLSQL_基础系列11_递归和层次查询CONNECT BY(案例)
- 不止代码:生日欢唱(ybtoj-区间dp)
- java自动依照日期建表,脚本根据一个表中的日期字段填充每月汇总表
- Composer fails to download http json files on update, not a network issue, https fine
- 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数
- android 通过图片url获取宽高_通过 URL 获取图片宽高优化
- Android Screen
- Windows系统错误代码大全
- 开源改变了小米什么?
- LAMP+LNMP(二) MySQL/Mariadb概述与安装实践
- 漏洞库:爬取CNNVD-国家信息安全漏洞库
- 我们学校有一个计算机室英文,深圳朗文版小学二年级下册Unit 2 At school练习题...
- Ubuntu系统上的ImageJ安装和卸载方法
- python sl4a_SL4A - 随风飘落的雨滴 - 博客园
- free-mybatis-plugin插件下载
- 信息技术领域会议(技术领域和非技术领域)
- intellij IDEA 中,.properties文件unicode转中文
- CNN网络结构发展演变:从LeNet到HRNet(一)