【问题标题】:MSTeams tab app working on desktop, browser and iOS, but not working on AndroidMSTeams 选项卡应用程序可在桌面、浏览器和 iOS 上运行,但无法在 Android 上运行
【发布时间】:2021-03-01 15:22:36
【问题描述】:

我正在为 MSTeams 开发一个标签应用程序。我在桌面应用程序、浏览器和 iOS 上的一切都按预期工作。但是,当我尝试访问 Android 设备上的选项卡时,entityId 似乎已被覆盖。

这就是我在registerOnSaveHandler() 中的内容:

    microsoftTeams.settings.registerOnSaveHandler((saveEvent) => {
        microsoftTeams.settings.setSettings({
            websiteUrl: "https://{{ teams_app_domain }}/",
            contentUrl: "https://{{ teams_app_domain }}/msteams/content/?name={loginHint}&tenant={tid}&group={groupId}&channelId={channelId}&teamSiteDomain={teamSiteDomain}&entityId={entityId}",
            entityId: config,
            suggestedDisplayName: "Display Name"
        });
        saveEvent.notifySuccess();
    });

这与文档所说的处理程序所期望的相匹配。我已尝试更新 websiteUrl 并使其与本文 here 建议的 contentUrl 完全相同,但这也不起作用。

但是,我在 GitHub 上发现了这两个问题(从去年年初开始),这与我看到的行为完全匹配

https://github.com/MicrosoftDocs/msteams-docs/issues/1335

https://github.com/MicrosoftDocs/msteams-docs/issues/1251

这两个标记为已解决,但我认为问题仍然存在。

如果有人经历过或知道解决方法并想分享它 - 将不胜感激

【问题讨论】:

  • 此问题已修复,正在推出。

标签: android tabs microsoft-teams


【解决方案1】:

我建议在没有任何 url 参数的情况下尝试它 - 尝试在页面上使用 Teams Context 对象获取上下文。这有一个额外的好处,即某些私人信息不会通过请求本身共享(我认为查询字符串值将报告给服务器之间,而流量本身不会,在这种情况下,它包括您用户的登录名)。

在相关说明中,当您使用 setSettings 时,它正在为标签设置 final url。它确实因用户而异。但是,您正在根据配置选项卡的用户设置loginHint。这意味着,如果您使用该值来尝试 per user,它实际上只会显示该 first 用户的值(不会为每位访客,仅限setSettings 的第一个用户。

所以,就像我说的,考虑改为使用 Teams 上下文执行所有操作,或者至少确保您不介意查询字符串中的内容。

【讨论】:

    【解决方案2】:

    相信是bug造成的,可以查看详情here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2014-08-14
      • 2020-03-01
      • 2015-02-08
      • 2015-03-28
      • 2012-12-20
      相关资源
      最近更新 更多