Intercom.js - 始终显示内部通信按钮

时间:2017-03-24 19:11:31

标签: reactjs redux intercom.js

我正在尝试将Intercom应用到ReactJS应用中。我按照他们的单页应用说明进行操作。我有一个问题(也许是设计问题?),除非向用户发送消息,否则右下方的小内部通信按钮不会显示。我希望用户可以看到 始终 按钮。当我第一次集成时,我能够显示按钮并且能够发送消息,因为用户没有问题,但在对代码进行一些修补之后,我似乎已经破坏了它。到目前为止我所拥有的是:

store.js

import createStore from 'redux';
export default createStore( ... );

intercom.js

import store from './store';

const APP_ID = /* app id */;
/* the intercom JS library */

const updated = false;

window.onload = () => {
    Intercom('boot', { app_id: APP_ID };

    store.subscribe(() => {
        if (typeof document === 'undefined') return;

        const state = store.getState();
        const currentUser = currentUserSelector(state);

        if (currentUser && !updated) {
            updated = true;

            Intercom('update', {
                email: currentUser.email,
                user_id: currentUser.id,
                name: `${ currentUser.firstName } ${ currentUser.lastName }`
            });
        }
    });
}

我在应用加载时运行的其中一个文件中有require('intercom.js')

控制台中没有错误,内部通信websocket显示在Chrome的开发中。收到消息时,控制台和客户端会打开,但我无法在页面加载时显示它。

提前致谢。

(我已将此标记为React,因为它是一个React应用程序 - 我不认为这与React有任何关系,但也许有一些副作用,我不会这样做'知道)。

1 个答案:

答案 0 :(得分:0)

好的 - 简单的错误。原来我订阅的计划不支持非访客聊天。我不得不“升级”到“Resolve Lite”计划 - 此时,我可以更改信使行为,在信使设置视图中将按钮/信使显示为“用户”。