如果您的應用程式很少刷新頁面(即,內容在客戶端被替換但沒有頁面刷新發生)並且有很多異步 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 和/或 email。 這會將已登錄用戶的詳細信息發送到 Intercom,並檢查是否應該向用戶顯示新消息。
對於登出訪客,示例如下:
window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
重要: 如果您複製上面的代碼片段,請務必手動更改您的工作區 ID(這在代碼中稱為您的 APP_ID)。
<