页面转换后刷新 SPA 上的 Hubspots 聊天小部件

问题描述

我在 Vue-SPA 上实现了 Hubspot。

它按预期工作。 但是聊天小部件不会跟踪 SPA 页面转换。

docs 建议使用 window.HubSpotConversations.widget.refresh(); 处理 SPA 上未跟踪的页面转换。

如果显示欢迎文本的设置延迟还没有结束。
refresh() 将触发错误的聊天流程。

但如果它已经结束,这有效。
有点。
因为如果新欢迎文本比旧文本长,它就会被裁剪。

The old welcome text
The new one but cropped
The new one displayed correctly



一个问题: 已通过聊天开始的对话不会在 refresh() 结束,但如果聊天已打开,它将在之后关闭。而且我不知道如何告诉小部件按照您的预期重新打开。

解决方法

如此处所述:https://developers.hubspot.com/docs/api/events/tracking-code,您需要在 SPA 中处理路由更改事件,然后像这样调用 trackPageView

var _hsq = window._hsq = window._hsq || [];
_hsq.push(['trackPageView']);

您可能还想在文档中描述的某些情况下调用 setPath