微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自适应卡Action.OpenURL跟踪

如何解决自适应卡Action.OpenURL跟踪

自适应卡1.2 / 1.3

问题

这与自适应卡中的 Action.OpenURL 按钮有关。 当您向用户显示自适应卡并带有一些链接(Action.OpenURL)时,只需在新选项卡中打开该URL。 Bot根本不知道该链接是否被单击,这使得跟踪事件非常困难,特别是在我们要记录单击某个特定发音的链接时。

任何人都可以帮助我们,有什么更好的方法解决这个问题。

解决方法

我相信自适应卡片发生了一些变化,不再允许您执行此类操作。但这是我发现的一些东西,但不知道它是否真的有效。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。