useThunderPhone āķis nodrošina pilnīgu kontroli pār lietotāja saskarni, kamēr ThunderPhone pārvalda balss sesiju, audio maršrutēšanu un savienojuma stāvokli. Izmantojiet to, ja vēlaties pilnībā pielāgotu lietotāja saskarni — savas pogas, izkārtojumus, animācijas un zīmolradi — kamēr ThunderPhone visu pārējo apstrādā fonā.
Kad izmantot bezsaskarnes āķi
Iepriekš izveidotaisThunderPhoneWidget komponents aptver lielāko daļu lietošanas gadījumu, taču izmantojiet bezsaskarnes āķi, ja nepieciešams:
- Pilnībā pielāgots zvana lietotāja interfeiss, kas atbilst jūsu lietotnes dizaina sistēmai
- Uz audio reaģējošas vizualizācijas (viļņu formas, lodes, pulsējoši indikatori), ko nodrošina reāllaika audio līmeņi
- Pielāgotas zvanu plūsmas, piemēram, veidlapas pirms zvana, aptaujas pēc zvana vai iekļauta tērzēšana līdzās balsij
- Integrācija esošā komponentu bibliotēkā (Material UI, Chakra, Radix u. c.)
Instalēšana
Bezsaskarnes āķim nav jāimportē
@thunderphone/widget/style.css, jo jūs nodrošināt savu lietotāja saskarni. Tomēr joprojām jāinstalē tā pati @thunderphone/widget pakotne.Pamata lietošana
Opcijas
Nododiet šīs opcijasuseThunderPhone, izmantojot UseThunderPhoneOptions:
Āķis ir bezsaskarnes: tas nepieņem
ThunderPhoneWidget izskata rekvizītus (theme, primaryColor, title, position, className). To nodošana rada TypeScript kļūdu — prezentācija ir pilnībā jūsu ziņā.Atgrieztā vērtība
Āķis atgriežUseThunderPhoneReturn objektu:
Uz audio reaģējošs lietotāja interfeiss
AtsauceaudioLevelRef nodrošina audio līmeņus kadru nomaiņas ātrumā, neizraisot React pārzīmēšanu, tāpēc tā ir ideāli piemērota plūstošu viļņformas vizualizāciju, pulsējošu ložu vai jebkuras ar sarunu saistītas animācijas vadībai. Līmenis atspoguļo to, kas ir skaļāks: balss aģenta balss vai apmeklētāja mikrofons.
Viļņformas piemērs
Pulsējošas lodes piemērs
Runāšanas indikatora piemērs
React renderētam lietotāja interfeisam, kas mainās atkarībā no skaļuma — piemēram, slieksnī balstītai “runāšanas” nozīmītei — intervālos nolasietaudioLevelRef.current un saglabājiet rezultātu stāvoklī:
Stāvokļu automāts
Rekvizītsstate ievēro šādu dzīves ciklu:
Piemēri
Ar skaņas izslēgšanas vadību
Ar zvansignālu
Savienojuma izveides laikā atskaņojiet zvana signālu, lai imitētu tālruņa zvanu:connecting un pakāpeniski apklust, kad pieslēdzas balss aģents. Ievadiet true, lai izmantotu iebūvēto noklusējuma zvansignālu, vai URL virkni, lai izmantotu savu audio failu.
Ar notikumu atgriezeniskajām izsaukšanas funkcijām
Pilnībā pielāgota lietotāja saskarne
Padomi
Vienmēr renderējiet phone.audio
Vienmēr renderējiet phone.audio
Elements
phone.audio ir neredzams, taču obligāts. Novietojiet to jebkur JSX kodā — tas nerenderē redzamu DOM, bet iekšēji pārvalda WebRTC audio savienojumu.Savienojuma izveides laikā atspējojiet pogu
Savienojuma izveides laikā atspējojiet pogu
Stāvoklis
connecting var ilgt 1–3 sekundes. Šajā stāvoklī atspējojiet zvana pogu, lai novērstu dublētus savienojuma mēģinājumus.Korekti apstrādājiet kļūdas stāvokli
Korekti apstrādājiet kļūdas stāvokli
Kad stāvoklis ir
error, parādiet lietotājam phone.error un atstājiet zvana pogu iespējotu. Hooks pats neiziet no stāvokļa error — atkārtoti izsaucot connect(), tiek sākts jauns mēģinājums un notīrīta iepriekšējā kļūda.Blakusiedarbībām izmantojiet atzvanes funkcijas
Blakusiedarbībām izmantojiet atzvanes funkcijas
Atzvanes funkcijas
onConnect, onDisconnect un onError ir piemērotas analītikai, žurnālu reģistrēšanai vai citas lietojumprogrammas loģikas aktivizēšanai, neaptaujājot stāvokli.