Microsoft Teams自定义应用调用条码扫描器返回9000错误(OLD_PLATFORM)
解决方案
- 升级Teams JS SDK版本:你当前使用的v1.10.0版本SDK过于老旧,条码扫描API
scanBarCode对安卓端Teams的原生支持是在v2.x版本才正式落地的,替换旧的SDK引入代码为最新稳定版v2.x的CDN地址即可,示例:
<script src="https://res.cdn.office.net/teams-js/2.21.0/js/MicrosoftTeams.min.js" crossorigin="anonymous"></script>
注意v2版本的microsoftTeams.initialize()支持Promise回调,建议等初始化完成后再调用媒体相关API,避免时序问题。
- 检查Teams应用manifest配置:必须在应用的manifest.json文件中声明媒体权限,否则即使SDK版本正确也无法调用硬件能力,添加如下配置项:
"devicePermissions": [ "media" ]
修改manifest后需要重新上传到Teams组织后台,更新应用版本后生效。
- 调用API前添加可用性校验:不要直接调用扫码接口,先判断当前运行环境是否支持该能力,添加校验逻辑示例:
if (microsoftTeams && microsoftTeams.media && microsoftTeams.media.scanBarCode) { // 执行扫码逻辑 } else { // 提示用户当前环境不支持扫码 }
- 检查终端运行环境:确认用户安卓系统版本为Android 8.0及以上,同时确认Teams应用已经获得系统授予的相机权限,部分厂商的权限管控会导致即使Teams版本最新也无法调用相机相关API。
- 排查应用加载模式:确保你的Blazor应用是在Teams原生个人标签/群组标签中打开,而不是通过外部链接跳转的内嵌WebView场景,后者不会加载Teams原生能力模块,会触发OLD_PLATFORM错误。
内容的提问来源于stack exchange,提问作者Duncan Waweru
相关产品推荐
相关产品推荐

