Jak zainstalować czat w aplikacji React Native

Komponent czatu HelpCrunch dla aplikacji hybrydowych
Napisany przez Konstantine
Zaktualizowano 5 dni temu


Instalacja

Aby zainstalować komponent, użyj menedżerów pakietów yarn lub npm:

yarn add rn-helpcrunch
yarn add react-native-webview@13.11.1
npm install --save rn-helpcrunch
npm install --save react-native-webview@13.11.1

Dla iOS wykonaj kilka dodatkowych kroków.

Dodaj do pliku ios/Podfile, bezpośrednio po require 'json':

pod 'react-native-webview', :path => '../node_modules/react-native-webview'

Po tym wykonaj następujące polecenia:

cd ios
rm Podfile.lock
pod install


Demo aplikacja

Dla szybkiego startu, przygotowaliśmy aplikację demonstracyjną, która prezentuje integrację komponentu React Native z widgetem HelpCrunch. Możesz jej użyć jako punkt odniesienia do własnej implementacji. Aplikacja pokazuje podstawową konfigurację i użycie komponentu w rzeczywistym środowisku React Native.


Konfiguracja

1.Utwórz widget strony w Settings→Website Widgets (lub otwórz istniejący).

2. Skopiuj 'organizationId' i 'appId

3. Wklej 'organizationId' i 'appId' do kodu komponentu widgetu.

import { useRef } from 'react';
import { HelpCrunchWidget, HCWRef } from 'rn-helpcrunch';

// ...
export default function App() {
  const widgetRef = useRef<HCWRef|null>(null);

  const onMessage = (event: any) => { ... }
  const onCustomerMessage = (event: object) => { ... }
  const onAgentMessage = (event: object) => { ... }

  return (
      <HelpCrunchWidget
        organization="@organizationId"     // skopiuj z ustawień HelpCrunch
        appId="@appId"      // skopiuj z ustawień HelpCrunch
        onMessage={onMessage}
        onCustomerMessage={onCustomerMessage}
        onAgentMessage={onAgentMessage}
        ref={widgetRef}
      ></HelpCrunchWidget>
  );
}


Jak stworzyć użytkownika

Aby utworzyć użytkownika, przeprowadzić uwierzytelnianie i zaktualizować informacje o użytkowniku, dostępne są następne metody:

  • hcwInit - Zainicjalizuj widget HelpCrunch w swojej aplikacji. Wszystkie metody, które zostały wywołane przed tą metodą, zostaną uruchomione po zakończeniu inicjalizacji. Istnieje podobna metoda init w API JS.
  • hcwUserAuth - Autoryzuj klientów i przypisz im unikalne identyfikatory użytkowników. Jest to podobne do metody userAuth w API JS.
  • hcwUpdateUser - Jest to funkcja podobna do updateUser w API JS, która jest wykorzystywana do dodawania lub modyfikowania istniejących danych klienta, takich jak imię, nazwisko, adres e-mail, numer telefonu i firma. Dodatkowo może utworzyć nowego użytkownika, jeśli nie ma jeszcze zainicjowanego dla bieżącego odwiedzającego.
  • hcwUpdateUserData - Ta metoda jest przydatna, gdy atrybuty użytkownika się zmieniają i chcesz natychmiast zobaczyć te zmiany w profilu użytkownika HelpCrunch. Podobna metoda updateUserData jest dostępna w API JS.
Przykład:
Aby uwierzytelnić użytkownika, musisz utworzyć obiekt typu 'user' i wywołać funkcję hcwUserAuth(user).
import { hcwUserAuth } from 'rn-helpcrunch';
...
  const user = {
    user_id: '123654789'    // wygeneruj unikalny identyfikator użytkownika
  };

  useEffect(() => {
    hcwUserAuth(user);
  }, [depts])
...
Uwaga: Aplikacja, w którą jest wbudowany widget, jest odpowiedzialna za wszystkie działania z użytkownikiem (tworzenie, przechowywanie, autoryzacja itp.).


Dostępne metody komponentu

Metody podane poniżej są równoważne tym, które znajdują się w dokumentacji API JS. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją API JS.

hcwInit(data, signature);
hcwUpdateUser(user, signature);
hcwUserAuth(user, signature);
hcwUpdateUserData(userCustomData, signature);
hcwHideWidget();
hcwShowWidget();
hcwToggleWidget();  - przełącznik widgetu (pokaż/ukryj) w zależności od poprzedniego stanu 
hcwOpenChatById(chatId);
hcwTrackEvent(eventName, signature);
hcwSetLocalization(phraseListName, signature);
hcwSendProactiveChatAutoMessage(autoMessageId, signature);
hcwSendUserMessage(messageText, signature);
hcwTypeUserMessage(messageText, signature);
hcwLogout();
hcwMuteNotificationSound(isMute, signature);
hcwSetOperatingHours(operatingHours, signature);
hcwOpenKBArticle(articleData, signature);
hcwSetMediaCSS(mediaClassesData, signature);

Jeśli nie korzystasz z security signature, nie ma potrzeby przekazywania podpisu przez te metody. Podpis służy jako dodatkowa warstwa zabezpieczeń, którą możesz zdecydować się utworzyć i przekazywać. W większości sytuacji generowanie unikalnych identyfikatorów użytkowników jest wystarczające.


Dostępne zdarzenia komponentu

Wydarzenia podane poniżej są równoważne tym, które znajdują się w API JS. Aby uzyskać więcej informacji, zapoznaj się z  dokumentacją JS API.

onReady={onReady}
onChatOpen={onChatOpen}
onChatClose={onChatClose}
onCustomerMessage={onCustomerMessage}
onAgentMessage={onAgentMessage}
onNewUnreadChat={onNewUnreadChat}
onPreChatFormSubmit={onPreChatFormSubmit}
onError={onError}

const onReady = () => {}
const onChatOpen = () => {}
const onChatClose = () => {}
const onCustomerMessage = () => {}
const onAgentMessage = () => {}
const onNewUnreadChat = () => {}
const onPreChatFormSubmit = () => {}
const onError = () => {}


<HelpCrunchWidget organization="organization" 
                  appId="appId"  
                  ref={widgetRef}
                  onReady={onReady}
                  onChatOpen={onChatOpen}
                  onChatClose={onChatClose}
                  onCustomerMessage={onCustomerMessage}
                  onAgentMessage={onAgentMessage}
                  onNewUnreadChat={onNewUnreadChat}
                  onPreChatFormSubmit={onPreChatFormSubmit}
                  onError={onError}
></HelpCrunchWidget>
Czy odpowiedzieliśmy na Twoje pytanie?