如果你的应用程序很少刷新页面(即,内容在客户端被替换,但没有页面刷新发生)并且有很多异步 JS,你需要以稍微不同的方式集成 Intercom,以确保你客户的数据保持最新,并且他们能接收到你所有的外向内容(消息、旅行等)。
这是我们建议的方法:
首先,在你的 HTML head 元素中包含 intercom JS 库文件。
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
重要提示: 如果复制上面的代码片段,请确保手动更改你的工作区 ID(在代码中称为 APP_ID)。
接下来,一旦你的网站上有登录用户(在他们经过身份验证并且你获取到他们的详细信息后),你调用window.Intercom('boot', {user_data})
,其中user_data
是关于该用户的所有数据。请确保在每次更新用户时发送 user_id 和/或电子邮件。这会将登录用户的详细信息发送给 Intercom,并检查应该展示给用户的新消息。
对于登出的访客,示例如下:
window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
重要提示: 如果复制上面的代码片段,请确保手动更改你的工作区 ID(在代码中称为 APP_ID)。