1

我想根据屏幕大小响应地切换自适应卡片。

例如,“Weather Conpact”和“Weather large”(http://adaptivecards.io/samples/

  • 如果是 iPhone 屏幕,显示“天气契约”

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

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

如果你知道上面的方法,请告诉我。

4

1 回答 1

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);

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

  • 如果是 iPhone 屏幕,则显示“Weather Compact”

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

因此。

于 2018-07-23T12:16:41.837 回答