0

最初のクリックでインターコム メッセンジャーが表示されるようにするには、サポート ボタンをダブルクリックする必要があります。

    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が非オブジェクトで呼び出されました」というエラーが表示されます

どんな助けでも大歓迎です。

4

0 に答える 0