Zendesk Web窗口小部件状态未正确更新且按钮未隐藏

时间:2019-12-18 14:38:23

标签: zendesk zendesk-api zendesk-app

我正在将Zendesk Web小部件加载到页面中,这是加载时的事件处理程序

scriptElement.onload = function () {
    zE(function () {
        $zopim(function () {
            $zopim.livechat.button.setHideWhenOffline(true);

            $zopim.livechat.setOnStatus(function (status) {
                console.log('status',status);

                status === 'online' ? $zopim.livechat.button.show() : $zopim.livechat.button.hide();
            });

            $zopim.livechat.setStatus('offline');
        });
    });
};

它具有setOnStatus事件处理程序,该事件处理程序应在状态更改时随时触发。最初在页面加载时,它似乎被触发了一次。您希望每次我调用setStatus方法时也会被触发,但事实并非如此。在我记录状态的位置,它始终只是“在线”,并且只发生一次。

我要执行的操作是在状态为脱机时强制按钮消失。但是,将状态设置为“离线”并不会隐藏按钮,而只会显示离线版本(即,一个按钮,它使我可以发送离线消息,而不是实时聊天)。

我认为setHideWhenOffline方法可能有所帮助,但在这种情况下似乎没有什么区别。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

实际上,我在这里找到了所需的解决方案,这可以防止出现脱机按钮。

window.zESettings = {
    webWidget: {
        contactForm: {
            suppress: true
        }
    }
};

https://developer.zendesk.com/embeddables/docs/widget/settings#suppress