如何响应地切换到自适应卡

时间:2017-11-06 09:09:58

标签: botframework adaptive-cards

我想根据屏幕尺寸响应性地切换自适应卡。

例如," Weather Conpact"和#34;天气大" (http://adaptivecards.io/samples/

  • 如果是iPhone屏幕,显示" Weather Conpact"

  • 在桌面屏幕的情况下,显示"天气大"

我认为有必要根据服务器端的UI创建一张卡,但是如果有一种方法只能在客户端处理,我想选择那种方式。

如果您知道上述方式,请告诉我。

1 个答案:

答案 0 :(得分:0)

我希望您现在能得到答案,无论如何我都会回答,希望能有所帮助   由于自适应卡是从BOT后端(C#或NodeJS)服务器发送的,因此您在渲染自适应卡客户端方面没有太多控制权。因此更好的方法是在连接到Bot本身时发送一些参数。如果您使用的是WebChat Channel,则可以执行以下操作:

    BotChat.App({
    user: {
        id: $parameters.userId, name: $parameters.userName,
        deviceType: $parameters.DeviceId,
        platform: $parameters.Platform,
    },
    bot: { id: model.botId, name: model.botName },
    resize: 'window',
    locale: 'en',
    sendTyping: true,
    directLine: {
        secret: model.secret,
        token: model.token,
        domain: model.directLineUrl,
        webSocket: true
    }
}, chatBotElement);

如您在上面的代码中所看到的,我正在用户对象中发送设备类型,该对象将在会话对象Bot后端的session.message.user.DeviceId中可用,您可以在此处验证从哪个设备开始的转换,以及发送

  • 在iPhone屏幕上,显示“ Weather Compact”

  • 在桌面屏幕上,显示“天气大”

因此。

相关问题