Клиентский чат-виджет для ионного приложения
У меня есть простое приложение с ионными вкладками с тремя вкладками. Структура которого выглядит следующим образом:
>TabsPage
>HomePage
>AboutPage
>ContactPage
Я хочу, чтобы у меня была функция чата, для которой я сейчас пытаюсь использовать PureChat.
Чтобы использовать PureChat в моем приложении, я должен скопировать и вставить небольшой скрипт в свое приложение, и в настоящее время я вставляю скрипт PureChat в мой index.html.
1. Наличие сценария в index.html приводит к тому, что кнопка PureChat Hello появляется на всех страницах моего приложения, но я хочу, чтобы эта кнопка отображалась только на моей странице ContactPage.
Пожалуйста, предложите, как сделать так, чтобы эта кнопка появлялась только на моей странице контактов.
2 ответа
У меня это работает над моим приложением ionic 3 - мое немного отличается.
У меня есть ссылка в меню, чтобы открыть окно живого чата - однако ваша проблема очень похожа... Я не хотел использовать стандартную кнопку purechat, мне нужна была ссылка на ссылку меню. Я добавил виджет с "пользовательской кнопкой", выбранной в PureChat.
Затем заставить его работать, я добавил код для вставки в
В моем меню я добавил:
<a (click)="openLiveChat()" menuClose class="menulink">Open Live Chat</a>
Затем в моем app.component.ts я добавил эту функцию:
openLiveChat(){
console.log("OpenLiveChat has been clicked");
let element: HTMLElement = document.getElementsByClassName('purechat-collapsed-image')[0] as HTMLElement;
element.click();
}
Технически, чат находится на каждой странице, но он скрыт до вызова функции openLiveChat().
Вставьте скрипт на страницу контактов
export class ContactPage{
addScript: boolean = false;
ngAfterViewChecked(): void {
if (!this.addScript) {
this.addPureChatScript();
}
}
addPureChatScript() {
this.addScript = true;
return new Promise((resolve, reject) => {
let scripttagElement = document.createElement('script');
scripttagElement.src = 'location/or/url/of/script';
scripttagElement.onload = resolve;
document.body.appendChild(scripttagElement);
})
}
}