UNPKG

@capgo/capacitor-crisp

Version:
91 lines 2.82 kB
import { WebPlugin } from '@capacitor/core'; export class CapacitorCrispWeb extends WebPlugin { constructor() { super(); window.$crisp = []; const s = document.createElement('script'); s.src = 'https://client.crisp.chat/l.js'; s.async = true; document.getElementsByTagName('head')[0].appendChild(s); this.setAutoHide(); } setAutoHide() { window.$crisp.push(['safe', true], ['do', 'chat:hide'], [ 'on', 'chat:closed', () => { window.$crisp.push(['do', 'chat:hide']); }, ], [ 'on', 'message:received', () => { window.$crisp.push(['do', 'chat:show']); }, ]); } async configure(data) { window.CRISP_WEBSITE_ID = data.websiteID; } async openMessenger() { window.$crisp.push(['do', 'chat:show']); window.$crisp.push(['do', 'chat:open']); } async setTokenID(data) { window.CRISP_TOKEN_ID = data.tokenID; this.reset(); } async setUser(data) { if (data.nickname) { window.$crisp.push(['set', 'user:nickname', [data.nickname]]); } if (data.email) { window.$crisp.push(['set', 'user:email', [data.email]]); } if (data.phone) { window.$crisp.push(['set', 'user:phone', [data.phone]]); } if (data.avatar) { window.$crisp.push(['set', 'user:avatar', [data.avatar]]); } } async pushEvent(data) { window.$crisp.push(['set', 'session:event', [[[data.name, null, data.color]]]]); } async setCompany(data) { const meta = {}; if (data.url) { meta.url = data.url; } if (data.description) { meta.description = data.description; } if (data.employment) { meta.employment = data.employment; } if (data.geolocation) { meta.geolocation = data.geolocation; } window.$crisp.push(['set', 'user:company', [data.name, meta]]); } async setInt(data) { window.$crisp.push(['set', 'session:data', [[[data.key, data.value]]]]); } async setString(data) { window.$crisp.push(['set', 'session:data', [[[data.key, data.value]]]]); } async sendMessage(data) { window.$crisp.push(['do', 'message:send', ['text', data.value]]); } async setSegment(data) { window.$crisp.push(['set', 'session:segments', [[data.segment]]]); } async reset() { window.$crisp.push(['do', 'session:reset']); this.setAutoHide(); } async getPluginVersion() { return { version: 'web' }; } } //# sourceMappingURL=web.js.map