首页 > 解决方案 > Zendesk Web 小部件状态未正确更新且按钮未隐藏

问题描述

我正在将 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方法可能有所帮助,但在这种情况下似乎没有任何区别。

有任何想法吗?

标签: zendeskzendesk-apizendesk-app

解决方案


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

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

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


推荐阅读