最初のクリックでインターコム メッセンジャーが表示されるようにするには、サポート ボタンをダブルクリックする必要があります。
private handleSupportClick() {
const ic = (window as any).Intercom;
function l() {
const d = document;
const s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://widget.intercom.io/widget/';
const x = d.getElementsByTagName('script')[0];
(x as any).parentNode.insertBefore(s, x);
}
(window as any).intercomSettings = {
app_id: process.env.REACT_APP_INTERCOM_APP_ID as string,
hide_default_launcher: true
};
(() => {
l();
if (typeof ic === "function") {
ic('reattach_activator');
ic('show', (window as any).intercomSettings);
} else {
const i = (...args: any) => {
(i as any).c(...args)
};
(i as any).q = [];
(i as any).c = (args: any) => {
(i as any).q.push(args)
};
(window as any).Intercom = i;
this.handleSupportClick();
}
})()
}
.
ただし、最初のクリックの後、サポート ボタンを 1 回クリックするだけで、同じメッセンジャーを召喚できます。デバッガーで文字通り行ごとにフローを追跡しましたが、ダブルクリックが必要な理由がまだわかりません。もちろん、最初のクリック後に関数自体を再度呼び出しましたが、それでも機能せず、「CreateListFromArrayLikeが非オブジェクトで呼び出されました」というエラーが表示されます
どんな助けでも大歓迎です。