node.js - 如何在微软团队机器人中使用自适应卡在其他浏览器中打开网址?

标签 node.js botframework bots microsoft-teams adaptive-cards

我正在使用微软团队机器人框架,我想要一个带有按钮的自适应卡,可以在弹出窗口(其他浏览器)中打开网址 通过使用 (Actions.openUrl),它在默认浏览器中打开 URL。 并希望它在其他浏览器中打开

这是我尝试过的,我正在使用node.js

var card = {
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [{
        "type": "Container",
        "items": [{
            "type": "TextBlock",
            "text": `${session.message.text}`,
            "weight": "bolder",
            "size": "medium"
        }

        ]
    },
    {
        "type": "Image",
        "url": `${bodyData.img}`

    },

    {
        "type": "Container",
        "items": [{
            "type": "TextBlock",
            "text": `${bodyData.calendar}`,
            "wrap": true
        }]
    }
    ],
    "actions": [
        {
            "type": "Action.openUrl",
            "title": "Open in Popout",
            "url": `${bodyData.url}`
        }   
        ]};

最佳答案

正如 paul cheung 所说,您无法在 openUrl 按钮中指定浏览器。不仅如此,您无法在 openUrl 按钮中指定 URL 的“目标”。您可以看到here您唯一可以指定的就是 URL 本身。 URL 如何打开的详细信息由客户端负责,机器人无法控制它们。

我认为你有几个选择。

选项 1

如果您确实想打开一个浏览器窗口(如弹出窗口),您可以尝试创建一种卡片将链接到的重定向页面。当用户单击该按钮时,您的重定向页面将在当前浏览器窗口的新选项卡中打开,然后您设置的任何客户端代码都会在新窗口中打开目标页面并关闭重定向页面的选项卡。

选项 2

在 Teams 中执行您所讨论的操作的传统方法是使用 task module 。根据您的 URL 包含的内容,您甚至可以考虑将卡片而不是网页放入任务模块中。

关于node.js - 如何在微软团队机器人中使用自适应卡在其他浏览器中打开网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58053375/

相关文章:

c# - 如何从复杂的自适应卡中读取值?

azure - 使用 Azure 或 App Studio 将 Bot 部署到 MS Teams?

java - 在 Cookie Clicker (Selenium) 上查找鼠标悬停工具提示的 xpath 时遇到问题

download - 拒绝机器人下载我的文件

javascript - 没有导出成员 'Headers' 和 RequestOptions

node.js - 使用sequelize比较 Node js中的日期

javascript - 跨 Node.js 模块共享变量的更好做法是什么

node.js - Watson Nodejs Speech To Text - 训练语言模型

node.js - 从 NodeJS 向 Skype for Business 发送附件

javascript - 在创建不和谐机器人时遇到 .disconnect() 问题