如何从botframework中的嵌入式webview接收请求并关闭消息扩展窗口?

问题描述 投票:1回答:1

我有一个机器人,它包含一个消息扩展功能的能力。我按照一个例子 此处. 但我没有使用卡视图,而是使用嵌入式Web视图来显示我的自定义UI(这是一个反应应用程序托管在S3

这是我用来打开消息扩展预览的代码。

  handleTeamsMessagingExtensionFetchTask(context, action) {
    const url = process.env.POPUP_VIEW_URL;
    return {
      task: {
        type: 'continue',
        value: {
          url: url,
          fallbackUrl: url,
          width: 680,
          height: 400,
          title: 'Feedback & praise',
        },
      },
    };
  }

弹出的界面会有这个UI。Iframe content

我试图找到一个关于当用户点击 "提交请求 "按钮时,机器人如何从UI中接收请求的exampledocumentation,但目前还没有找到。我看了这个 这个但它使用了一个自适应卡的例子。

不知道文档中有没有嵌入式webview的例子?我也想过当用户点击按钮时,只需调用API,但还是困惑于如何在API调用返回成功后关闭预览窗口。

botframework
1个回答
0
投票

你需要在你的按钮点击中使用submitTask(提交任务)

microsoftTeams.tasks.submitTask(JSON);

0
投票

正如@Rajesh上面的回答。我基本上是这样做的

  1. 添加 @microsoft/teams-js 到我的反应应用程序
  2. 从我的组件中,包含按钮。因为我不需要把任何信息传回给botteams,所以我只调用没有参数的函数。
import * as microsoftTeams from "@microsoft/teams-js";

...

export const myComponent = () => {
  const submitRequest = () => {
    // make API request
    if (success) {
      microsoftTeams.initialize(); // This is a must
      microsoftTeams.tasks.submitTask();
    }
  }


  return (
    <>
     ...
     <button onClick={submitRequest} type="button">Submit request</button>
    </>
  );
}
© www.soinside.com 2019 - 2024. All rights reserved.