【问题标题】:Adaptive Card Action.OpenURL Tracking自适应卡片 Action.OpenURL 跟踪
【发布时间】:2021-02-17 05:23:51
【问题描述】:

自适应卡 1.2 / 1.3

问题

这与自适应卡片中的 Action.OpenURL 按钮有关。 当您向用户显示带有一些链接的自适应卡片 (Action.OpenURL) 时,它只是在新选项卡中打开该 URL。 Bot 不知道链接是否被点击,这使得事件的跟踪难以处理,特别是在我们想要记录哪个链接被点击以获取特定话语时。

谁能帮助我们,有什么更好的方法来处理这个问题。

【问题讨论】:

    标签: adaptive-cards web-chat botframework webchatjs


    【解决方案1】:

    我相信自适应卡片中发生了一些变化,不再允许你做这样的事情。但这是我发现的一些东西,但不知道它是否真的有效。

    <script type="text/babel" data-presets="es2015,react,stage-3">
      (async function () {
        const { ReactWebChat } = window.WebChat;
        const cardActionMiddleware = () => next => async ( { cardAction } ) => {
          if (cardAction?.type === 'openUrl') {
            const urlButtonClickEvent = new Event('urlButtonClick')
            urlButtonClickEvent.data = cardAction.value;
            window.dispatchEvent(urlButtonClickEvent);
          }
          return next( { cardAction } );
        }
        const res = await fetch('http://localhost:3500/directline/token', { method: 'POST' });
        const { token } = await res.json();
        window.ReactDOM.render(
          <ReactWebChat
            directLine={ window.WebChat.createDirectLine({ token }) }
            cardActionMiddleware={cardActionMiddleware}
          />,
          document.getElementById('webchat')
        );
        document.querySelector('#webchat > *').focus();
        window.addEventListener( 'urlButtonClick', ( { data } ) => {
          store.dispatch({
            type: 'WEB_CHAT/SEND_EVENT',
            payload: {
              name: 'URL_BUTTON_CLICK',
              value: data
            }
          })
        } );
      })().catch(err => console.error(err));
    </script>
    

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 2018-08-08
      • 2020-11-14
      • 2020-07-07
      • 2021-02-06
      • 2021-11-14
      • 2015-05-27
      • 2020-07-29
      • 2018-10-14
      相关资源
      最近更新 更多