Langkau ke kandungan utama
Semua KoleksiIntercomSaluranPengirim Pesan
Integrasikan Intercom dalam aplikasi satu halaman
Integrasikan Intercom dalam aplikasi satu halaman
ned chen avatar
Ditulis oleh ned chen
Dikemas kini lebih 2 minggu yang lalu

Jika aplikasi anda mempunyai sangat sedikit penyegaran halaman (iaitu, kandungan ditukar di sisi pelanggan tetapi tiada penyegaran halaman berlaku) dan banyak JS asinkron, anda perlu mengintegrasikan Intercom dengan cara yang sedikit berbeza untuk memastikan data pelanggan anda dikemaskini dan mereka menerima semua kandungan keluaran anda (mesej, lawatan, dll.)

Inilah cadangan kami:

Pertama, masukkan fail pustaka JS Intercom dalam elemen kepala HTML anda.

(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);}}})();

Penting: Jika anda menyalin cuplikan kod di atas pastikan untuk mengubah ID ruang kerja anda secara manual (ini dipanggil APP_ID anda dalam kod).

Kemudian, setelah anda mempunyai pengguna yang telah log masuk di laman web anda (selepas mereka disahkan dan anda mempunyai maklumat mereka), anda panggil window.Intercom('boot', {user_data}), di mana user_data adalah semua data tentang pengguna. Pastikan untuk menghantar user_id dan/atau e-mel pada setiap panggilan untuk mengemas kini pengguna anda. Ini akan menghantar butiran pengguna yang log masuk ke Intercom dan akan memeriksa mesej baru yang harus ditunjukkan kepada pengguna.

Contoh ini untuk pengunjung yang log keluar adalah:

window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
Adakah ini menjawab soalan anda?