Personalizzare il widget Chat
È possibile personalizzare vari aspetti del widget di chat, ad esempio il layout e le icone, i colori e il testo.
Suggerimento
Questo articolo fornisce una panoramica delle varie proprietà di personalizzazione.Configurazione rete
scripts/settings.js
.
Nome proprietà | descrizione; | Richiesto? | Valore predefinito |
---|---|---|---|
URI |
URL di Oracle Chat Server | Sì | N/A |
channelId |
ID canale del canale Web Oracle | Sì | N/A |
userId |
Identificativo univoco dell'utente. Se non lo fornisci, Oracle Digital Asssistant ne genera uno. | No | Valore generato in modo casuale |
clientAuthEnabled |
Determina se l'SDK si connette a un canale in cui è stata abilitata l'autenticazione client. Come descritto in Configura autenticazione client, è possibile impostare questa opzione su true per connettersi al canale con autenticazione abilitata e utilizzare il token JWT.
|
Sì | false |
Flag funzioni
- Connessioni sicure
- Pulsanti di azione a forma di pillola
- Audio narrazione delle risposte di abilità.
- Condivisione degli allegati
- Disabilitazione dei clic sui messaggi precedenti (fuori stato attivo)
- Completamento automatico input utente
<script>
const chatSettings = {
showConnectionStatus: true,
conversationBeginPosition: 'bottom',
openChatOnLoad: true,
position: {bottom: '2px', right: '2px'},
displayActionAsPills: true,
initUserHiddenMessage: 'Hello',
embedded: true,
targetElement: 'chat-container',
embedTopScrollId: 'top-text',
customHeaderElementId: 'custom-header',
botButtonIcon: 'images/bot-button.png',
logoIcon: 'images/bot-white.png',
botIcon: 'images/bot-green.png',
personIcon: 'images/user-icon.png',
URI: YOUR_URI,
channelId: YOUR_CHANNELID,
};
...
</script>
Suggerimento
A partire dalla release 22.08, lo schema delle impostazioni di configurazione del widget chat è disponibile in un formato di schema JSON standard tramite una rete CDN (https://static.oracle.com/cdn/oda/22.8.0/settings-schema.json
), che può essere utilizzata per creare schermate di configurazione dinamiche.
Nome proprietà | descrizione; | Richiesto? | Valore predefinito |
---|---|---|---|
alwaysShowSendButton |
Visualizza il pulsante Invia nel piè di pagina della chat anche quando non è presente testo di input utente. | No | false |
defaultGreetingTimeout |
Timeout predefinito, in secondi, dopo il quale viene visualizzato un messaggio di saluto predefinito. | No | 5 |
defaultWaitMessageInterval |
Intervallo predefinito, in secondi, visualizzato dal messaggio di attesa predefinito. | No | 5 |
disablePastActions |
Disabilita i pulsanti di azione in un messaggio di skill dopo che un utente ha interagito con un'azione di postback, posizione o sottomissione modulo. I valori consentiti sono all , none o postback . Quando l'opzione è impostata su all , tutti i pulsanti di azione del messaggio vengono disabilitati all'interazione. L'impostazione di postback disabilita solo le azioni di postback e di posizione e l'impostazione di none mantiene tutti i pulsanti abilitati anche dopo un'interazione. Il funzionamento abilitato da questa proprietà è indipendente dalla configurazione a livello di assistente digitale per la disabilitazione della selezione delle azioni precedenti. È necessario impostare i due separatamente.
|
No | all |
displayActionsAsPills |
Visualizza i pulsanti di azione a forma di pillola. | No | false |
enableAttachment |
Configura la condivisione degli allegati. | No | true |
enableAttachmentSecurity |
Quando l'impostazione è true , alle richieste di caricamento degli allegati vengono passate intestazioni aggiuntive per assicurarsi che non possano essere scaricate senza passare un token JWT firmato valido come intestazione di autorizzazione.
Non abilitare questa impostazione se la competenza si connette a un'istanza ODA versione 20.08 o viene eseguita su qualsiasi versione precedente alla 20.08. Questa proprietà si applica solo alle connessioni abilitate per l'autenticazione del client alle versioni 20.12 e successive della piattaforma ODA. |
No | false |
enableAutocomplete |
Impostare su true per abilitare la capacità di completare automaticamente la richiesta utente utilizzando le richieste utente idealizzate immesse come suggerimenti di completamento automatico nella pagina Crea intento. Lo skill interrompe questi suggerimenti quando l'utente immette tre o più caratteri. Consente inoltre di impostare le parole nell'input utente che corrispondono alle frasi suggerite in grassetto.
|
No | false |
enableBotAudioResponse |
Abilita l'espressione delle risposte di un'abilità quando vengono ricevute utilizzando l'API di sintesi vocale Web. | No | false |
enableClearMessage |
Abilita il pulsante Cancella messaggio nell'intestazione del widget chat. | No | false |
enableDraggableButton |
Consente agli utenti di trascinare il pulsante del widget chat quando il contenuto della pagina Web viene bloccato. Questa funzione funziona anche per i browser Safari Android e iOS. | No | false |
enableHeadless |
Consente di utilizzare Oracle Web SDK senza la relativa interfaccia utente in modo da sviluppare la propria interfaccia utente di chat. | No | false |
enableLocalConversationHistory |
Consente di caricare nel browser la conversazione precedente associata a un determinato userId quando il widget è stato inizializzato.
|
No | false |
enableLongPolling |
Utilizzare le richieste HTTP quando il websocket non riesce a connettersi. | No | false |
enableSecureConnection |
Configura la comunicazione sicura (https v. http e wss v. ws ).
|
No | true |
enableSpeech |
Quando è impostata su true , questa proprietà abilita il microfono per il riconoscimento delle voci. Ad esempio:
|
No | false |
enableSpeechAutoSend |
Quando l'impostazione è true (impostazione predefinita), la risposta vocale dell'utente viene inviata automaticamente al server chat e viene visualizzata come messaggio inviato nel widget chat. Quando è impostata su false , la risposta vocale dell'utente viene visualizzata nel campo di testo del messaggio prima dell'invio al server di chat in modo che l'utente possa modificarla prima di inviarla manualmente o eliminare il messaggio.
|
No | true |
focusOnNewMessage |
Imposta la focus sul campo di input dell'utente o sul primo pulsante di azione in un messaggio quando viene ricevuto un nuovo messaggio.
|
No | input |
multiLangChat |
Consente al widget chat di rilevare la lingua di un utente e di selezionare una lingua preferita da un menu a discesa nell'intestazione. Il menu viene definito con un oggetto che definisce la lingua principale e un array di due o più tag di lingua (l'array supportedLangs , descritto in Chat multilingue).
|
No | N/A |
name |
Il nome dell'istanza. Fornisce uno spazio di nomi all'istanza e viene utilizzato come prefisso per i nomi di classe CSS e gli ID elemento. | No | oda-chat |
openChatOnLoad |
Espande il widget chat quando viene caricata la pagina. | No | false |
openLinksInNewWindow |
Esegue l'override delle preferenze del browser dell'utente aprendo i collegamenti in una nuova finestra. Questa impostazione si applica a tutti i collegamenti presenti nella conversazione, inclusi i pulsanti di azione, i collegamenti di fallback per gli allegati e i collegamenti alle schede. | No | false |
showConnectionStatus |
Consente la visualizzazione dello stato della connessione nell'intestazione del widget chat. | No | false |
showPrevConvStatus |
Visualizza i messaggi di stato alla fine dei messaggi meno recenti delle conversazioni precedenti. | No | true |
showTypingIndicator |
Visualizza un fumetto della chat in attesa di una risposta. | No | true |
Funzionalità
- Imitare una conversazione avviata con abilità.
- Incorpora il contenuto nella parte superiore e inferiore della finestra di chat che scorre o che è fermo (appiccicoso).
- Impostare le impostazioni internazionali.
- Imposta la modalità debug.
- Impostare la lingua e la voce per la sintesi vocale.
Proprietà | descrizione; | Richiesto? | Valore predefinito |
---|---|---|---|
customHeaderElementId |
Assegna un nome all'ID dell'elemento <div> aggiunto all'intestazione del widget chat.
|
No | N/A |
delegate |
Oggetto che imposta un delegato per la ricezione di callback prima che si verifichino determinati eventi in una conversazione. L'oggetto delegate consente al codice di interagire sia con i messaggi utente che con le risposte alle competenze prima dell'invio dei messaggi e della visualizzazione delle risposte.
|
No | N/A |
embedBottomScrollId |
L'ID dell'elemento aggiunto come contenuto scorrevole nella parte inferiore della chat. Utilizzare questa proprietà per aggiungere contenuto personalizzato nella vista conversazione del widget chat. | No | N/A |
embedBottomStickyId |
L'ID dell'elemento utilizzato per il contenuto adesivo visualizzato nella parte inferiore della chat. Utilizzare questa proprietà per aggiungere contenuto personalizzato nella vista conversazione del widget chat. | No | N/A |
embedded |
Se si imposta questa opzione su true , viene attivata la modalità incorporata per il widget chat. Oltre a impostare questa proprietà, è necessario assegnare un nome all'elemento div che ospita il widget nella proprietà targetElement .
|
No | false |
embeddedVideo |
Se si imposta questa opzione su true , vengono incorporati i collegamenti per i video YouTube, Daily Motion e Oracle Video Hub in modo che possano essere riprodotti dal widget di chat.
|
No | false |
embedTopscrollId |
L'ID dell'elemento div aggiunto come contenuto a scorrimento nella parte superiore del widget chat.
|
No | N/A |
embedTopStickyId |
ID dell'elemento div utilizzato per il contenuto adesivo visualizzato nella parte superiore del widget chat. Utilizzare questa proprietà per aggiungere contenuto personalizzato nella vista conversazione del widget chat. Ad esempio, l'elemento top-text div nel seguente snippet viene utilizzato come riferimento come embedTopStickyId: 'top-text' :
Nell'esercitazione su Web SDK viene descritto come configurare questa proprietà e impostare lo scorrimento e il non scorrimento per gli elementi del widget chat.
|
No | N/A |
enableAgentSneakPreview |
Invia all'agente il testo inserito dall'utente insieme allo stato di digitazione. | No | false |
enableAutocompleteClientCache |
Consente l'inserimento nella cache lato client per ridurre al minimo le chiamate al server quando è in uso la funzione di completamento automatico. | No | false |
enableDefaultClientResponse |
Se l'impostazione è true , il client visualizza le risposte predefinite quando la risposta dello skill è stata ritardata o quando non è presente alcuna risposta dallo skill.
|
No | false |
enableEndConversation |
Consente all'utente di terminare la conversazione e reimpostare la sessione di chat. Cancella inoltre la cronologia delle conversazioni locali, si disconnette dal server di chat e riduce al minimo il widget | No | true |
enableHeaderActionCollapse |
Comprime le azioni di intestazione in un pulsante di menu se il conteggio delle icone è maggiore di due. | No | true |
enableResizableWidget |
Consente all'utente di ridimensionare il widget chat dopo averlo espanso. Se il widget si trova sul lato destro della pagina Web, gli utenti modificano le dimensioni trascinando il bordo superiore, il bordo sinistro o l'angolo superiore sinistro. Allo stesso modo, se il widget è posizionato sul lato sinistro, gli utenti ridimensionano il bordo superiore, il bordo destro o l'angolo superiore destro. | No | false |
enableSendTypingStatus |
Invia lo stato di digitazione dell'utente all'agente reale. | No | false |
enableTabsSync |
Sincronizza i messaggi di conversazione tra schede diverse per un determinato userId e channelId .
|
No | true |
enableVoiceOnlyMode |
Abilita la modalità solo vocale. L'attivazione della modalità solo vocale elimina la necessità per gli utenti di fare clic sul pulsante microfono ogni volta che ricevono un messaggio bot. Con questa modalità abilitata, l'SDK avvia automaticamente il riconoscimento vocale una volta che il TTS (Text-to-Speech) per il messaggio ricevuto è stato pronunciato. | No | false |
hotkeys |
Oggetto che contiene un elenco di tasti da tastiera che attivano o attivano elementi mediante il tasto ALT combinato con il tasto di scelta rapida passato. | No | {...} Esempio:
|
i18n |
Oggetto che contiene i campi delle impostazioni nazionali. Ogni impostazione nazionale gestisce le coppie chiave-valore i18n per le stringhe di testo utilizzate nel widget.
|
No | {'en-us':{…}} Ad esempio:
|
initBotAudioMuted |
Inizializza l'espressione del messaggio di skill in modalità con audio disattivato. Questa funzione può essere attivata solo quando si imposta enableBotAudioResponse su true .
|
No | true |
initMessageOptions |
Mentre initUserHiddenMessage invia il messaggio iniziale "nascosto" solo dopo che il client si è connesso alla skill e il widget chat è stato espanso, è possibile utilizzare questa impostazione per inviare messaggi non appena il client si è connesso alla skill, indipendentemente dal fatto che il widget sia espanso o meno. Questa impostazione accetta un oggetto con una proprietà sendAt . La proprietà sendAt può avere uno dei due valori seguenti: 'init' o 'expand' . Se si imposta 'init' , i messaggi di inizializzazione vengono inviati non appena viene stabilita la connessione. Se si imposta 'expand' , i messaggi di inizializzazione vengono inviati solo quando il widget viene espanso. Nel seguente snippet, il messaggio viene impostato quando viene stabilita la connessione a causa di sendAt: 'init' : Tenere presente che la fatturazione inizia quando il messaggio di inizializzazione è stato inviato, anche se il widget è ancora chiuso (come nel caso di sendAt: 'init ').
|
N/A | |
initUserHiddenMessage |
Messaggio utilizzato per avviare una conversazione. Questo messaggio può essere una stringa di testo o un payload di messaggi. Ad esempio: initUserHiddenMessage: 'Hi' . Questi messaggi non dipendono dalla cronologia utente. Questo messaggio viene inviato in ogni sessione dopo che il client si è connesso allo skill e il widget chat è stato espanso. Per inviare il primo messaggio solo quando la cronologia delle conversazioni è vuota, è necessario associare i listener di eventi utilizzando il metodo Bots.on() . Per eseguire questa operazione, ad esempio, è possibile associare gli eventi WIDGET_OPENED e NETWORK , descritti nella documentazione SDK.
|
No | N/A |
initUserProfile |
Aggiorna il profilo utente prima dell'inizio di una conversazione. Il formato del payload del profilo deve essere { profile: {...} } . Ad esempio: Questa funzione aggiorna il contesto utente dopo che il client è stato connesso allo skill e il widget chat è stato espanso. Di conseguenza, il profilo utente può essere riflesso nel primo messaggio di risposta all'utente. Ad esempio, l'abilità può salutare l'utente con un messaggio come "Benvenuto, John Smith! Il tuo ultimo ordine è stata una pizza di peperoni medio". Questi messaggi vengono inviati dopo che il client si è connesso allo skill e il widget di chat è stato espanso. Questi messaggi del profilo utente vengono inviati dopo che il client si è connesso allo skill e il widget chat è stato espanso. Un messaggio del profilo utente viene ancora inviato prima del messaggio iniziale "nascosto" se viene passato anche initUserHiddenMessage .
È possibile passare solo la proprietà |
No | N/A |
isDebugMode |
Abilita la modalità di debug. | No | false |
linkHandler |
Oggetto che esegue l'override della configurazione per la gestione dei clic sui collegamenti incorporati nelle risposte dello skill. L'oggetto gestisce i collegamenti in due modi: target , che accetta una stringa, e onclick , che accetta una funzione. È possibile impostare target o onclick , ma non entrambi. Per aprire tutti i collegamenti in un'area WebView, passare linkHandler: { target: 'oda-chat-webview' } .
|
No |
|
locale |
Impostazioni nazionali predefinite per le stringhe di testo del widget. Le impostazioni nazionali passate durante l'inizializzazione hanno una preferenza superiore rispetto alle impostazioni nazionali del browser degli utenti. Se non esiste una corrispondenza esatta, l'SDK tenta di trovare la lingua più vicina. Ad esempio, se le impostazioni nazionali sono 'da-dk' , ma le traduzioni i18n vengono fornite solo per 'da' , viene utilizzata la traduzione 'da' . In assenza di traduzioni per le impostazioni nazionali passate, le traduzioni vengono cercate e applicate per le impostazioni nazionali del browser. In assenza di traduzioni per ognuna di esse, per le traduzioni viene utilizzata la versione locale predefinita 'en' .
|
No | en-us |
messageCacheSizeLimit |
Il numero massimo di messaggi che vengono salvati in localStorage alla volta.
|
No | 2000 |
reconnectMaxAttempts |
Il numero di tentativi effettuati dal widget chat per riconnettersi quando la connessione iniziale non riesce. | No | 5 |
shareMenuItems |
Le voci di menu nel menu di scelta rapida di condivisione. Questa proprietà accetta un array con valori stringa mappati alle voci di menu:
['audio', 'file'] ). Tutte le voci di menu sono disponibili quando l'array è vuoto, quando le voci nell'array non sono corrette (['audio', 'visuil'] o quando non è stato definito shareMenuItems ).
|
No |
|
skillVoices |
Array contenente le voci preferite che vengono utilizzate per narrare le risposte. Ogni elemento nell'array deve essere un oggetto con due campi: lang e name . name è facoltativo. Il primo elemento che corrisponde a una voce disponibile nel sistema verrà utilizzato per la narrazione. Questa impostazione non è più valida.
|
No | System language |
speechLocale |
Impostazioni nazionali previste del discorso dell'utente utilizzate per il riconoscimento vocale. La lingua predefinita è l'inglese ('en-US' ) degli Stati Uniti. Le altre lingue supportate sono: inglese australiano ('en-au' ), inglese britannico ('en-uk' ), francese ('fr-fr' ), tedesco ('de-de' ), italiano ('it-it' ), indiano-hindi (hi-in ), indiano-inglese (en-in ), portoghese brasiliano ('pt-br' ) e spagnolo ('es-es' ). Le impostazioni nazionali di sintesi vocale possono essere impostate in modo dinamico chiamando l'API setSpeechLocale('<locale>') . Il riconoscimento vocale non funzionerà se sono state passate impostazioni nazionali non supportate.
|
No | 'en-us' |
storageType |
Il meccanismo di memorizzazione Web utilizzato per memorizzare la cronologia delle conversazioni per gli utenti il cui userId viene passato dall'applicazione host. I valori supportati sono 'localStorage' e 'sessionStorage' . Le conversazioni degli utenti anonimi vengono sempre memorizzate in sessionStorage e vengono eliminate automaticamente al termine della sessione del browser.
|
No | 'localStorage' |
targetElement |
Assegna un nome all'elemento div in cui il widget chat viene incorporato nella pagina Web. L'elemento chat-container div nel seguente snippet viene utilizzato come riferimento come targetElement: 'chat-container' :
Guarda l'esercitazione su Web SDK per scoprire come aggiungere e applicare lo stile all'elemento div .
|
No | N/A |
theme |
Il tema del layout principale. Sono disponibili tre temi: 'default' , 'redwood-dark' e 'classic' .
|
No | default |
timestampFormat |
Formatta l'indicatore orario di consegna che accompagna i messaggi. Accetta i valori in un oggetto options DateTimeFormat o come stringa di pattern come descritto in Personalizzare l'indicatore orarioNota: controlla l'indicatore orario del messaggio e non l'indicatore orario dell'intestazione. . |
No |
|
timestampHeaderFormat |
Personalizzare il formato dell'indicatore orario nell'intestazione del messaggio. È possibile utilizzare un oggetto options DateTimeFormat o una stringa di pattern come descritto in Personalizzare l'indicatore orario.
|
No | N/A |
timestampHeaderMode |
Configura le intestazioni dell'indicatore orario visualizzate sopra il primo messaggio del giorno. 'absolute' (il formato predefinito) visualizza l'indicatore orario completo in formato assoluto, 'relative' lo visualizza in un formato relativo e 'none' nasconde completamente l'intestazione dell'indicatore orario.
|
No | absolute |
timestampMode |
Configura la modalità di visualizzazione dell'indicatore orario come indicatore orario assoluto visualizzato in ogni messaggio oppure come indicatore orario relativo visualizzato solo nell'ultimo messaggio.
Nota: controlla l'indicatore orario del messaggio e non l'indicatore orario dell'intestazione. |
No | default (per gli indicatori orari assoluti) o relative .
|
ttsService |
Array contenente le voci preferite utilizzate per le risposte vocali tramite TTS (text-to-speech). Ogni elemento nell'array deve essere un oggetto con almeno uno dei campi seguenti: lang e name . Il primo elemento che corrisponde a una voce disponibile nel sistema verrà utilizzato per il TTS.
|
No | oracle |
typingIndicatorTimeout |
Imposta il numero di secondi trascorsi i quali l'indicatore di digitazione viene rimosso automaticamente se il widget chat non ha ancora ricevuto la risposta. | No | 20 |
typingStatusInterval |
Imposta l'intervallo, in secondi, per limitare lo stato di digitazione inviato all'agente reale. | No | 3 |
webViewConfig |
Personalizza il widget WebView. | No | { referrerPolicy: 'no-referrer-when-downgrade', closeButtonType: 'icon', size: 'tall' } |
Pulsanti Read More e Read Less per risposte skill multi-paragrafo
È possibile ottimizzare l'esperienza utente per i messaggi di skill multi-paragrafo aggiungendo i pulsanti Read More e Read Less.
Descrizione dell'immagine readmore.png
È possibile aggiungere il codice lato client per questi pulsanti, che nascondono e mostrano i paragrafi, utilizzando l'oggetto delegate
e le funzioni personalizzate.
- In
settings.js
, definire un oggettodelegate
con una funzione di callbackbeforeDisplay
nella dichiarazioneconst chatSettings
:
Se il messaggio è di tipodelegate: { beforeDisplay: function (message) { var messagePayload = message && message.messagePayload; if (messagePayload.type === 'text') { messagePayload.text = splitParagraph(messagePayload.text); } return message; } }
text
,beforeDisplay
chiama la funzionesplitParagraph
personalizzata per dividere il testo in base al primo paragrafo. - Dichiarare le variabili per le funzioni di visualizzazione
splitParagraph
etoggleParagraph
personalizzate:var PREFIX_DOTS = 'dots_'; var PREFIX_MORE = 'more_'; var PREFIX_TOGGLE = 'toggle_button';
- Aggiungere l'espressione della funzione
splitParagraph
e la funzionetoggleParagraphView
.splitParagraph
è un'espressione IIFE (Immediately Invoked Function Expression) che isola la variabileglobalIDCounter
in modo che possa essere utilizzata solo dalla funzionesplitParagraph
. Il codice identifica un paragrafo ("\n\n"
) e divide di conseguenza il testo. Quindi aggiunge tre punti (...) per indicare che c'è più testo da visualizzare e un pulsante Read More per mostrare il testo rimanente.var splitParagraph = (function () { var globalIDCounter = 0; return function splitParagraph(text) { var paragraphs = text.split('\n\n'); if (paragraphs.length > 1) { var HTMLText = '<p>' + paragraphs[0] + '<span id="' + PREFIX_DOTS + globalIDCounter + '">...</span></p>' + '<span id="' + PREFIX_MORE + globalIDCounter + '" class="more">'; for (var i = 1; i < paragraphs.length; i++) { HTMLText += '<p>' + paragraphs[i] + '</p>'; } HTMLText += '</span><button id="' + PREFIX_TOGGLE + globalIDCounter + '" class="readMore" onclick="toggleParagraphView(' + globalIDCounter + ')">Read More</button>'; globalIDCounter++; return HTMLText; } else { return text; } } })(); function toggleParagraphView(elemID) { var dots = document.getElementById(PREFIX_DOTS + elemID); var textMore = document.getElementById(PREFIX_MORE + elemID); var buttonToggle = document.getElementById(PREFIX_TOGGLE + elemID); if (!dots || !textMore || !buttonToggle) { return; } if (dots.style.display === 'none') { dots.style.display = 'inline'; buttonToggle.innerText = 'Read More'; textMore.style.display = 'none'; } else { dots.style.display = 'none'; buttonToggle.innerText = 'Read Less'; textMore.style.display = 'inline'; } }
- Configurare e (facoltativamente) applicare lo stile ai pulsanti Read More e Read Less. Il CSS include uno stile
display:none
per mostrare o nascondere i pulsanti in base allo stato della visualizzazione del testo lungo.- Se non si desidera applicare uno stile ai pulsanti, aggiungere il seguente codice:
<style> .more { display: none; } </style>
- Se si desidera applicare uno stile ai pulsanti, è possibile eseguire operazioni simili alle seguenti:
<style> .readMore { color: #fff !important; background-color: red; font-size: 12pt; padding: 4px; outline: 0; -moz-outline: 0; border: 0; } .readMore:hover { color: #fff !important; background-color: #606060 !important; } .more { display: none; } </style>
- Se non si desidera applicare uno stile ai pulsanti, aggiungere il seguente codice:
Layout
- Impostare la posizione del widget all'interno della pagina Web.
- Impostare le dimensioni, i colori e lo stile del carattere del widget chat.
- Impostare il riempimento per i messaggi all'interno del widget.
- Impostare la posizione dell'icona badge di notifica rispetto al pulsante bot.
- Impostare la posizione iniziale per la conversazione all'interno del widget.
<script>
const chatSettings = {
URI: YOUR_URI,
channelId: YOUR_CHANNELID,
font: '14px "Helvetica Neue", Helvetica, Arial, sans-serif', //layout modification property
height: '60vh', //layout modification property
width: '20vw', //layout modification property
"colors": { //custom colors property
"branding": "#01538A",
"text": "#B20637"
},
}
...
</script>
Proprietà | descrizione; | Richiesto? | Valore predefinito |
---|---|---|---|
actionsLayout |
Imposta la direzione del layout per le azioni locali. Quando si imposta questa opzione come horizontal , questi pulsanti vengono disposti orizzontalmente e vengono inseriti a capo se il contenuto si eccede.
|
No | vertical |
badgePosition |
La posizione dell'icona del distintivo rispetto al pulsante dell'icona. | No | {"top": "0", "right": "0"} |
cardActionsLayout |
Imposta la direzione del layout per le azioni della scheda. Quando si imposta questa opzione come horizontal , questi pulsanti vengono disposti orizzontalmente e vengono racchiusi nel contenuto.
|
No | vertical |
colors |
I colori utilizzati nel widget chat. | No | {"branding": "#1B8FD2", "text": "#212121", "textLight": "#737373"} |
conversationBeginPosition |
La posizione iniziale della conversazione nel widget. Se impostato su top , i primi messaggi vengono visualizzati nella parte superiore del widget. Se l'impostazione è bottom , la conversazione inizia nella parte inferiore.
|
No | bottom |
font |
Il carattere utilizzato nel widget chat. | No | 16px "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue |
fontFamily |
Famiglia di caratteri utilizzata per tutto il testo nel widget chat. Questa impostazione ha la precedenza sulla configurazione font .
|
No | "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue" |
fontSize |
La dimensione del carattere da utilizzare per il testo di intestazione, bolla e piè di pagina nel widget. Questa impostazione ha la precedenza sulla configurazione font .
|
No | 16px |
globalActionsLayout |
Imposta la direzione del layout per le azioni globali. Se impostato su 'orizzontale', i pulsanti vengono posizionati orizzontalmente e vengono avvolti se il contenuto si eccede. | No | vertical |
height |
Altezza della larghezza di una chat impostata in base a uno dei valori <length> tipo di dati. | No | 70vh |
messagePadding |
Il riempimento intorno ai messaggi nel widget chat. | No | 15px |
position |
Il posizionamento del widget chat nella finestra del browser. Deve essere passato come oggetto JSON. | No | {bottom: '20px', right: '20px'} |
width |
Larghezza del widget chat impostata su uno dei valori <length> tipo di dati. | No | 30vw |
Icone pulsante intestazione personalizzata



colors.headerButtonFill
nelle impostazioni iniziali.
La personalizzazione dei colori potrebbe non funzionare per tutti gli SVG, in quanto possono essere colorati in più colori o avere un tratto e colori di riempimento personalizzati.
Icona | Funzione | Flag funzioni | Personalizzazione |
---|---|---|---|
Cancella messaggio | Cancella sia i messaggi correnti che quelli meno recenti nella conversazione. | enableClearMessage: true |
'<image URL | SVG string>' |
Risposta audio | Attiva/disattiva l'audio delle risposte skill man mano che vengono ricevute. Poiché questo è un pulsante di attivazione/disattivazione, ha due stati, voce su, dove vengono pronunciate le risposte e voce fuori, dove le risposte non vengono pronunciate. | enableBotAudioResponse: true |
|
Chiudi | Comprime il widget e visualizza il pulsante di avvio ![]() |
Nessuna: questa icona è sempre abilitata nel widget chat. Non viene visualizzato nella modalità incorporata. | closeIcon : '<image URL | SVG string>' |
Colori personalizzati
- È possibile passare la configurazione
colors
:colors: { "branding": "#e00", "text": "#545454" },
- In alternativa, è possibile utilizzare le variabili CSS definite nel wrapper chat (
.oda-chat-wrapper
):.oda-chat-wrapper { --color-branding: '#e00'; --color-text: '#545454'; } }
Suggerimento
Si consiglia di modificare i colori utilizzando le variabili CSS.Variabile CSS | Chiave | descrizione; |
---|---|---|
--color-actions-background |
actionsBackground |
Il colore di sfondo per i pulsanti di azione |
--color-actions-background-hover |
actionsBackgroundFocus |
Colore di sfondo per i pulsanti di azione quando sono attivi. |
--color-actions-background-focus |
actionsBackgroundHover |
Colore di sfondo dei pulsanti di azione al passaggio del mouse |
--color-actions-border |
actionsBorder |
Colore del bordo per i pulsanti di azione |
--color-actions-text |
actionsText |
Colore del testo per i pulsanti di azione |
--color-actions-text |
actionsTextFocus |
Colore del testo per i pulsanti di azione sullo stato attivo |
--color-actions-text-focus |
actionsTextHover |
Colore del testo per i pulsanti di azione al passaggio del mouse |
--color-user-message-background |
botMessageBackground |
Colore dello sfondo della bolla dei messaggi di risposta dello skill |
--color-bot-text |
botText |
Colore del testo in un messaggio inviato dallo skill |
--color-branding |
branding |
Il colore principale per il branding del widget. Questo colore viene utilizzato come sfondo dell'intestazione e come colore al passaggio del mouse sui pulsanti del piè di pagina. |
--color-card-background |
cardBackground |
Il colore di sfondo utilizzato per una scheda. |
--color-conversation-background |
conversationBackground |
Colore utilizzato per lo sfondo del riquadro conversazioni. |
--color-danger-actions-background |
dangerActionsBackground |
Colore di sfondo del pulsante azione pericolo |
--color-danger-actions-background-focus |
dangerActionsBackgroundFocus |
Colore di sfondo del pulsante di azione pericolo sullo stato attivo |
--color-danger-actions-background-hover |
dangerActionsBackgroundHover |
Colore di sfondo del pulsante azione pericolo al passaggio del mouse |
--color-danger-actions-border |
dangerActionsBorder |
Colore bordo pulsante azione pericolo |
--color-danger-actions-text |
dangerActionsText |
Colore testo pulsante azione pericolo |
--color-danger-actions-text-focus |
dangerActionsTextFocus |
Colore del testo del pulsante azione pericolo sullo stato attivo |
--color-danger-actions-text-hover |
dangerActionsTextHover |
Colore del testo del pulsante azione pericolo al passaggio del mouse |
--color-danger-form-actions-background |
dangerFormActionsBackground |
Colore di sfondo delle azioni di pericolo nei messaggi Tabella, Maschera, Maschera tabella e Modifica modulo |
--color-danger-form-actions-background-focus |
dangerFormActionsBackgroundFocus |
Colore di sfondo delle azioni di pericolo con stato attivo nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-danger-form-actions-background-hover |
dangerFormActionsBackgroundHover |
Colore di sfondo delle azioni di pericolo al passaggio del mouse nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-danger-form-actions-border |
dangerFormActionsBorder |
Colore del bordo delle azioni pericolo nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-danger-form-actions-text |
dangerFormActionsText |
Colore del testo delle azioni di pericolo nei messaggi Tabella, Maschera, Maschera tabella e Modifica modulo |
--color-danger-form-actions-text-focus |
dangerFormActionsTextFocus |
Colore del testo delle azioni di pericolo con stato attivo nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-danger-form-actions-text-hover |
dangerFormActionsTextHover |
Colore del testo delle azioni di pericolo al passaggio del mouse nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-error-border |
errorBorder |
Colore del bordo di una bolla di messaggi di errore. Il colore viene utilizzato come colore del bordo del messaggio di errore a livello di modulo visualizzato nei messaggi Modifica modulo. |
--color-error-message-background |
errorMessageBackground |
Colore di sfondo di un fumetto di messaggi di errore. Il colore viene utilizzato come colore di sfondo del messaggio di errore a livello di modulo visualizzato nei messaggi Modifica modulo. |
--color-error-title |
errorTitle |
Colore del titolo del contenuto del messaggio di errore. Il colore viene utilizzato come colore del testo di errore del messaggio di errore a livello di modulo visualizzato nei messaggi Modifica modulo. |
--color-footer-background |
footerBackground |
Colore utilizzato per il backgound del piè di pagina. |
--color-footer-button-fill |
footerButtonFill |
Colore di riempimento di un'icona SVG utilizzata nei pulsanti che si trovano nel piè di pagina della chat. |
--color-form-actions-background |
formActionsBackground |
Il colore di sfondo delle azioni modulo |
--color-form-actions-background-focus |
formActionsBackgroundFocus |
Colore di sfondo delle azioni modulo sullo stato attivo |
--color-form-actions-background-hover |
formActionsBackgroundHover |
Colore di sfondo delle azioni modulo al passaggio del mouse |
--color-form-actions-border |
formActionsBorder |
Colore del bordo delle azioni della forma |
--color-form-actions-text |
formActionsText |
Colore del testo delle azioni modulo |
--color-form-actions-text-focus |
formActionsTextFocus |
Colore del testo delle azioni del modulo sullo stato attivo |
--color-form-actions-text-hover |
formActionsTextHover |
Colore del testo delle azioni modulo al passaggio del mouse |
--color-form-background |
formBackground |
Colore di sfondo delle forme |
--color-form-error |
formError |
Colore di riempimento SVG dell'icona nei messaggi di errore a livello di campo e di modulo visualizzati nei messaggi di modifica modulo. Il colore viene utilizzato come colore del bordo del campo di input in caso di errore nei messaggi Modifica modulo. |
--color-form-error-text |
formErrorText |
Colore del testo di un messaggio di errore a livello di campo visualizzato nei messaggi Edit-Form |
--color-form-header-background |
formHeaderBackground |
Il colore di sfondo dei titoli dei moduli |
--color-form-header-text |
formHeaderText |
Colore del testo dei titoli dei moduli |
--color-form-input-background |
formInputBackground |
Colore di sfondo dei campi di input nei messaggi Modifica modulo |
--color-form-input-border |
formInputBorder |
Colore del bordo dei campi di input nei messaggi Modifica modulo |
--color-form-input-border-focus |
formInputBorderFocus |
Colore del bordo dei campi di input con stato attivo nei messaggi Modifica modulo |
--color-form-input-text |
formInputText |
Colore del testo dei campi di input nei messaggi Modifica modulo |
--color-form-label |
formLabel |
Colore delle etichette del modulo |
--color-form-text |
formText |
Il colore del testo delle forme |
--color-global-actions-background |
globalActionsBackground |
Colore di sfondo dei pulsanti di azione globali |
--color-global-actions-background-focus |
globalActionsBackgroundFocus |
Colore di sfondo dei pulsanti di azione globali quando sono attivi. |
--color-global-actions-background-hover |
globalActionsBackgroundHover |
Colore di sfondo per il passaggio del mouse sui pulsanti di azione globali. |
--color-global-actions-border |
globalActionsBorder |
Colore del bordo dei pulsanti di azione globali |
--color-global-actions-text |
globalActionsText |
Colore del testo dei pulsanti di azione globali |
--color-global-actions-text-focus |
globalActionsTextFocus |
Colore del testo nei pulsanti di azione globali quando sono attivi. |
--color-global-actions-text-hover |
globalActionsTextHover |
Colore del testo nei pulsanti di azione globali quando gli utenti vi passano sopra. |
--color-header-background |
headerBackground |
Colore di sfondo dell'intestazione del widget chat |
--color-header-button-fill |
headerButtonFill |
Colore di riempimento delle icone SVG utilizzate per i pulsanti nell'intestazione della chat |
--color-header-text |
headerText |
Colore del titolo dell'intestazione della chat |
--color-input-background |
inputBackground |
Colore di sfondo del campo di input del messaggio nel piè di pagina della chat |
--color-input-text |
inputText |
Colore del testo di input del messaggio nel piè di pagina della chat |
--color-links |
links |
Colore per i collegamenti incorporati nei messaggi skill |
--color-error-border |
N/A | Colore del bordo di una bolla di messaggi di errore |
--color-error-message-background |
N/A | Colore di sfondo di una bolla di messaggi di errore |
--color-error-text |
N/A | Colore della descrizione del contenuto di un messaggio di errore |
--color-error-title |
N/A | Colore del titolo del contenuto di un messaggio di errore |
--color-footer-button-background-hover |
N/A | Colore di sfondo dei pulsanti del piè di pagina al passaggio del mouse |
--color-footer-button-fill-hover |
N/A | Colore di riempimento del piè di pagina dell'intestazione al passaggio del mouse |
--color-header-button-background-hover |
N/A | Colore di sfondo dei pulsanti di intestazione al passaggio del mouse |
--color-header-button-fill-hover |
N/A | Colore di riempimento dei pulsanti di intestazione al passaggio del mouse |
--color-input-border |
N/A | Colore del bordo del campo di input |
--color-user-links |
N/A | Colore dei collegamenti incorporati nei messaggi utente. |
--color-popup-background |
N/A | Il colore di sfondo di prompt e popup |
--color-popup-button-background |
N/A | Colore di sfondo dei pulsanti popup |
--color-popup-button-text |
N/A | Colore del testo dei pulsanti popup |
--color-popup-horizontal-rule |
N/A | Colore della regola orizzontale per il separatore per l'azione del menu chat multilingua |
--color-popup-item-background-hover |
N/A | Colore di sfondo al passaggio del mouse sugli elementi dell'elenco popup |
--color-popup-text |
N/A | Colore del testo e dell'icona di prompt e popup |
--color-table-background |
N/A | Colore dello sfondo delle tabelle |
--color-table-header-background |
N/A | Colore di sfondo delle intestazioni di tabella |
--color-table-separator |
N/A | Colore del separatore delle righe della tabella |
--color-table-text |
N/A | Colore del testo delle tabelle |
--color-notification-badge-background |
notificationBadgeBackground |
Il colore di sfondo per il badge delle notifiche dei messaggi |
--color-notification-badge-text |
notificationBadgeText |
Il colore del testo per il conteggio dei messaggi nel distintivo di notifica |
--color-primary-actions-background |
primaryActionsBackground |
Colore di sfondo del pulsante di azione principale |
--color-primary-actions-background-focus |
primaryActionsBackgroundFocus |
Colore di sfondo del pulsante di azione principale sullo stato attivo |
--color-primary-actions-background-hover |
primaryActionsBackgroundHover |
Colore di sfondo del pulsante di azione principale al passaggio del mouse |
--color-primary-actions-border |
primaryActionsBorder |
Colore del bordo del pulsante di azione principale |
--color-primary-actions-text |
primaryActionsText |
Colore del testo del pulsante di azione principale |
--color-primary-actions-text-focus |
primaryActionsTextFocus |
Colore del testo del pulsante di azione principale sullo stato attivo |
--color-primary-actions-text-hover |
primaryActionsTextHover |
Colore del testo del pulsante di azione principale al passaggio del mouse |
--color-primary-form-actions-background |
primaryFormActionsBackground |
Colore di sfondo delle azioni principali nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-primary-form-actions-background-focus |
primaryFormActionsBackgroundFocus |
Colore di sfondo delle azioni principali con stato attivo nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-primary-form-actions-background-hover |
primaryFormActionsBackgroundHover |
Colore di sfondo delle azioni principali al passaggio del mouse nei messaggi Table, Form, Table-Form e Edit-Form |
--color-primary-form-actions-border |
primaryFormActionsBorder |
Colore del bordo delle azioni principali nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-primary-form-actions-text |
primaryFormActionsText |
Colore del testo delle azioni principali nei messaggi Tabella, Maschera, Maschera tabella e Modifica modulo |
--color-primary-form-actions-text-focus |
primaryFormActionsTextFocus |
Colore di sfondo delle azioni principali con stato attivo nei messaggi Tabella, Form, Table-Form e Modifica-Form |
--color-primary-form-actions-text-hover |
primaryFormActionsTextHover |
Colore di sfondo delle azioni principali al passaggio del mouse nei messaggi Table, Form, Table-Form e Edit-Form |
--color-rating-star |
ratingStar |
Colore applicato alle stelle di valutazione in un messaggio di feedback quando gli utenti le passano sopra o le selezionano. Se non si specifica un colore, viene utilizzato il colore branding .
|
N/A | recognitionViewBackground |
Il colore di sfondo della vista in cui viene visualizzato il testo riconosciuto quando gli utenti attivano la modalità vocale. Se non si definisce questo colore, verrà utilizzato il colore definito per headerBackground .
|
N/A | recognitionViewButtonFill |
Colore di riempimento SVG per l'attivazione/disattivazione della modalità testo vocale quando gli utenti passano alla modalità voce. |
--color-recognition-view-text |
recognitionViewText |
Colore utilizzato per il testo riconosciuto dall'input vocale dell'utente. Se non si definisce questo colore, verrà utilizzato il colore definito per text .
|
N/A | shareMenuText |
Colore utilizzato per le voci di menu di condivisione. Questo colore consente di eseguire l'override del set di valori per la chiave di testo, se passato. |
--color-table-actions-background-focus |
tableActionsBackgroundFocus |
Colore di sfondo delle azioni della tabella sullo stato attivo |
--color-table-actions-text-focus |
tableActionsTextFocus |
Colore del testo delle azioni della tabella sullo stato attivo |
--color-table-actions-text-hover |
tableActionsTextHover |
Colore del testo delle azioni della tabella al passaggio del mouse |
--color-text |
text |
Colore del testo per i messaggi nel widget chat. |
-color-text-light |
textLight |
Il colore del testo secondario nei messaggi, ad esempio le descrizioni delle schede nel widget chat. |
--color-timestamp |
timestamp |
Colore per l'indicatore orario relativo. |
--color-typing-indicator |
typingIndicator |
Colore di riempimento dello sfondo utilizzato per l'indicatore di digitazione. |
N/A | userMessageBackgound |
Il colore di sfondo del fumetto utilizzato per i messaggi utente. |
--color-user-text |
userText |
Il colore del testo in un messaggio inviato dall'utente. |
--color-visualizer |
visualizer |
Colore utilizzato per le barre nel grafico del visualizzatore. Se non si definisce questo colore, verrà utilizzato il colore definito per branding .
|
--color-visualizer-container-background |
visualizerContainerBackground |
Colore di sfondo per il contenitore del visualizzatore vocale che viene visualizzato quando gli utenti passano alla modalità vocale. Se non si definisce questo colore, verrà utilizzato il colore definito per userMessageBackgound .
|
È possibile impostare un'immagine per
conversationBackground
, headerBackground
e footerBackground
. Questi campi possono accettare tutti i parametri che possono essere passati alla proprietà di sfondo dello sfondo CSS. Ad esempio:colors: {conversationBackground: 'no-repeat url("https://images.unsplash.com/photo-1582580470647-e3be5274d6a0?ixlib=rb-1.2.1&auto=format&fit=crop&w=668&q=80")'},
Icone personalizzate
È possibile personalizzare le icone, incluse quelle per l'icona dello skill, l'icona del logo della chat e le icone dell'avatar per lo skill e l'utente.
Suggerimento
Le stringhe SVG si caricano più velocemente degli asset immagine. Ti permettono anche di animare l'immagine e cambiarne il colore. Il layout definito per la proprietàtheme
viene applicato alle stringhe SVG per i pulsanti di collegamento, invio e microfono, ma non per gli altri asset immagine.
icons
per raggruppare tutte le icone personalizzate in un unico campo. Le icone precedenti alla versione 21.10 sono ancora supportate, ma i valori passati con l'oggetto icons
hanno la precedenza. Tutti i campi nell'oggetto icons
supportano sia i percorsi delle risorse immagine che le stringhe SVG raw.const settings = {
// ...,
icons: {
rating: '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>'
}
};
Proprietà (release 21.10) | Proprietà (release precedenti) | descrizione; | Stringa SVG compatibile? |
---|---|---|---|
avatarAgent |
agentAvatar |
Per le competenze integrate con gli agenti attivi, questa icona viene visualizzata insieme ai messaggi dell'agente reale. Se questa proprietà non è definita, viene visualizzato il valore avatarBot (o agentAvatar ).
|
Sì |
avatarbot |
botIcon |
Icona visualizzata accanto al messaggio di risposta dello skill. Questa icona abilità viene visualizzata solo se si fornisce questa icona. In caso contrario, non viene visualizzata alcuna icona. | Sì |
avatarUser |
personIcon |
Icona visualizzata accanto ai messaggi utente. Questa icona non viene visualizzata per impostazione predefinita: viene visualizzata solo se definita. | Sì |
clearHistory |
clearMessageIcon |
Icona pulsante Cancella messaggio che si trova nell'intestazione del widget | Sì |
close |
N/A | L'icona visualizzata per il pulsante Chiudi nei banner dei messaggi di errore, nelle anteprime espanse delle immagini e nel widget WebView. | Sì |
collapse |
closeIcon |
L'icona del pulsante, situata nell'intestazione della vista chat, che riduce al minimo la vista chat. | Sì |
download |
downloadIcon |
Icona utilizzata per il pulsante di download degli allegati che viene visualizzata in ogni messaggio allegato inviato dallo skill. | download - Sì
|
error |
errorIcon |
L'URL dell'immagine utilizzata per l'icona di errore. |
|
expandImage |
expandImageIcon |
L'icona utilizzata per l'immagine consente di espandere il controllo visualizzato su ogni messaggio di allegato immagine inviato dallo skill. | expandImage - Sì
|
fileAudio |
audioIcon |
Icona dell'allegato audio visualizzata quando l'URL di origine dell'allegato non è raggiungibile. |
|
fileGeneric |
fileIcon |
Icona allegato file. |
|
fileImage |
imageIcon |
Icona dell'allegato immagine, visualizzata quando non è possibile raggiungere l'origine dell'allegato. |
|
fileVideo |
videoIcon |
L'icona dell'allegato video, visualizzata quando non è possibile raggiungere l'URL di origine dell'allegato. |
|
keyboard |
keyboardIcon |
Icona della tastiera, visualizzata nel pulsante che consente di passare dalla modalità vocale alla modalità tastiera. | Sì |
launch |
botButtonIcon |
Pulsante bot skill, visualizzato quando il widget chat viene ridotto a icona. |
|
logo |
logoIcon |
Icona del logo della chat visualizzata nell'intestazione del widget della chat. |
|
mic |
micIcon |
Icona pulsante microfono nel piè di pagina del widget chat visualizzata quando | Sì |
rating |
N/A | Icona visualizzata per i pulsanti di azione feedback nel componente rating. Per una migliore esperienza utente per l'azione al passaggio del mouse, passare una stringa di icone SVG riempita. | rating - Sì
|
send |
sendIcon |
Icona del pulsante Invia messaggio | Sì |
shareMenu |
attachmentIcon |
Icona di caricamento dell'allegato | Sì |
shareMenuAudio |
N/A | L'icona per la voce di menu audio nel popup del menu di condivisione. | Sì |
shareMenuFile |
N/A | L'icona per la voce di menu del file nel popup del menu di condivisione. | Sì |
shareMenuLocation |
N/A | L'icona per il pulsante del menu Condividi nel popup del menu Condividi. | Sì |
shareMenuVisual |
N/D | L'icona per la voce del menu immagine/video nel popup del menu di condivisione | Sì |
ttsOff |
audioResponseOffIcon |
L'icona del pulsante di attivazione/disattivazione quando le risposte audio sono disattivate. | Sì |
ttsOn |
audioResponseOnIcon |
L'icona per il pulsante di attivazione/disattivazione quando le risposte audio sono attivate. | Sì |
typingIndicator |
chatBubbleIcon |
Icona animata nel riquadro delle conversazioni che indica una risposta inviata da skill. | Sì |
chatBubbleIcon
).
Nome proprietà | descrizione; | Richiesto? | Valore predefinito |
---|---|---|---|
chatBubbleIconHeight |
Altezza dell'icona a forma di bolla chat di caricamento. | No | 42px |
chatBubbleIconWidth |
Larghezza dell'icona a forma di bolla chat di caricamento. | No | 56px |
Stringhe personalizzate
en-us
. In caso contrario, vengono visualizzate le traduzioni en-us
per i valori mancanti."i18n": {
"fr": {
"chatTitle": "Soutien"
},
"en-us": {
"chatTitle": "Support"
},
"es": {
"chatTitle": "Apoyo"
},
"zh-cn": {
"chatTitle": "支持"
}
}
Se vengono fornite stringhe personalizzate per versioni locali diverse da en
, è necessario specificare tutte le chiavi per tale versione locale. In caso contrario, vengono visualizzate le traduzioni en
per i valori mancanti.<script>
const chatSettings = {
URI: '<Chat server URI>',
channelId: '<Channel ID>',
userId: '<User ID>',
fontFamily: '"Helvetica Neue", Helvetica, Arial, sans-serif',
locale: 'en',
enableClearMessage: true,
icons: {
launch: 'style/Robot.png',
avatarBot: 'style/Robot.png',
avatarUser: 'style/userIcon.png'
}
};
function initSDK(name) {
// If WebSDK is not available, reattempt later
if (!document || !WebSDK) {
setTimeout(function() {
initSDK(name);
}, 2000);
return;
}
// Default name is Bots
if (!name) {
name = 'Bots';
}
Chiave | descrizione; | Valore predefinito |
---|---|---|
agent |
Il testo utilizzato per l'agente | 'Agent' |
agentMessage |
Indicatore del messaggio di skill per i lettori di schermo. Viene parlato dai lettori di schermo prima delle risposte alle abilità. Il testo (`{0}` ) viene sostituito dal nome dell'agente.
|
`'{0} says'` |
attachment_audio |
Testo utilizzato per l'espressione TTS di un allegato audio. | 'Audio attachment' |
attachment_file |
Il testo utilizzato per l'espressione TTS di un allegato file. | 'File attachment' |
attachment_image |
Testo utilizzato per l'espressione TTS di un allegato immagine. | 'Image attachment' |
attachment_video |
Testo utilizzato per l'espressione TTS di un allegato video. | 'Video attachment' |
attachmentAudioFallback |
Messaggio di fallback visualizzato al posto di un allegato audio se il client non è in grado di eseguire il rendering dell'audio. Il testo compreso tra {0} e {/0} è impostato su un collegamento per il download del file.
|
Your browser does not support embedded audio. However you can {0}download it{/0}. |
attachmentVideoFallback |
Il messaggio di fallback visualizzato al posto di un allegato video se il client non può eseguire il rendering del video. Il testo compreso tra {0} e {/0} è impostato su un collegamento per il download del file.
|
Your browser does not support embedded video. However you can {0}download it{/0} .
|
audioResponseOn |
La descrizione comandi che viene visualizzata quando l'utente passa il puntatore del mouse sul pulsante "off" dell'audio nell'intestazione. | Turn audio response on |
avatarAgent |
Testo alternativo utilizzato per l'icona agente visualizzata accanto ai messaggi agente. | Agent icon |
avatarBot |
Testo alternativo utilizzato per l'icona dello skill visualizzata accanto ai messaggi dello skill. | Bot icon |
avatarUser |
Testo alternativo utilizzato per l'icona utente visualizzata accanto ai messaggi utente. | User icon |
card |
L'identificativo della scheda. | 'Card {0}' . È possibile localizzare la stringa posizionando il segnaposto ordinale ({0} ) prima o dopo la parola. Continueremo a supportare la stringa 'Card' utilizzata nelle release precedenti che non include il segnaposto ordinale. Per questa stringa, l'ordinale viene posizionato dopo la parola. Se si desidera disattivare l'audio, passare una stringa vuota (card: '' ).
|
cardImagePlaceholder |
Testo segnaposto visualizzato durante il recupero e il caricamento dell'immagine della carta. | Loading image |
cardImagePlaceholder |
Testo segnaposto visualizzato durante il recupero e il caricamento dell'immagine della carta. | Loading image |
cardNavNext |
Etichetta per il pulsante di navigazione della scheda per la visualizzazione della scheda successiva in un layout orizzontale. | Next card |
cardNavPrevious |
Etichetta per il pulsante di navigazione della scheda per la visualizzazione della scheda precedente in un layout orizzontale. | Previous card |
chatSubtitle |
Imposta il sottotitolo della vista chat, visualizzato sotto il titolo nell'intestazione della vista chat. Se il flag dei sottotitoli è impostato e i flag showConnectionStatus e showTypingIndicator sono impostati su true, viene visualizzato il sottotitolo anziché lo stato della connessione o l'indicatore di digitazione.
|
N/D |
chatTitle |
Titolo del widget chat visualizzato nell'intestazione. | Ask |
clear |
Descrizione comandi visualizzata quando l'utente passa il puntatore del mouse sul pulsante Cancella messaggi nell'intestazione. | Clear |
close |
Descrizione comandi visualizzata quando l'utente passa il puntatore del mouse sul pulsante Chiudi widget nell'intestazione. | Close |
closing |
Il testo di stato visualizzato durante la chiusura della connessione tra widget chat e server. | Closing |
connected |
Il testo di stato visualizzato quando viene stabilita la connessione tra widget chat e server. | Connected |
connecting |
Testo di stato visualizzato quando il widget chat si connette al server chat. | Connecting |
connectionFailureMessage |
Messaggio di errore visualizzato quando il widget non è in grado di connettersi allo skill. | Sorry, the assistant is unavailable right now. If the issue persists, contact your help desk. |
connectionRetryLabel |
L'etichetta del pulsante di nuova connessione. | Try Again |
defaultGreetingMessage |
La risposta di saluto predefinita del client visualizzata quando la risposta skill non è stata ricevuta entro il numero di secondi impostato da defaultGreetingTimeout. .
|
Hey, Nice to meet you! Allow me a moment to get back to you. |
defaultSorryMessage |
La risposta client predefinita quando la risposta skill non è stata ricevuta il numero di secondi impostato da typingIndicatorTimeout .
|
Unfortunately, I am not able to get you the right content. Please try again. |
defaultWaitMessage |
Risposta predefinita visualizzata all'intervallo quando non è stata ricevuta una risposta skill effettiva. Questo intervallo viene impostato, in secondi, da defaultWaitMessageInterval
|
I'm still working on your request. Thank you for your patience! |
disconnected |
Testo di stato visualizzato quando la connessione tra il widget chat e il server è stata chiusa. | Disconnected |
download |
Testo di accesso facilitato per il pulsante di download visualizzato in ogni messaggio allegato inviato dallo skill. | Download |
endConversation |
Descrizione comandi visualizzata quando si passa il puntatore del mouse sul pulsante dell'intestazione della conversazione finale. | End Conversation |
endConversationConfirmMessage |
Messaggio di conferma visualizzato quando un utente fa clic sul pulsante Termina conversazione. | Are you sure you want to end the conversation? |
endConversationDescription |
Il messaggio di descrizione visualizzato insieme al messaggio di conferma nel prompt della conversazione finale. | This will also clear your conversation history. |
errorSpeechInvalidUrl |
Il messaggio di errore visualizzato quando l'URL del server di sintesi vocale non è impostato. | ODA URL for connection is not set. Please pass 'URI' parameter during SDK initialization. |
errorSpeechMultipleConnection |
Il messaggio di errore visualizzato quando si tentano più connessioni vocali per un breve intervallo. | Another voice recognition is ongoing. Can't start a new one.' |
errorSpeechTooMuchTimeout |
Messaggio di errore visualizzato quando un utente fornisce un messaggio vocale troppo lungo per essere riconosciuto. | Too much voice input to recognize. Can not generate recognized text. |
errorSpeechUnsupportedLocale |
Messaggio di errore visualizzato quando si tenta una registrazione ed è stata configurata una versione locale non supportata per il riconoscimento vocale. | The set speech locale is not supported. Cannot start recording. |
imageViewerClose |
Testo di accesso facilitato per il pulsante che chiude l'immagine espansa. | Close image viewer |
imageViewOpen |
Testo di accessibilità per il pulsante che espande l'immagine. | Open image viewer |
inputPlaceholder |
Testo del segnaposto visualizzato nel campo di input utente. | Type a message |
itemIterator |
Identificativo elemento in un elenco di elementi in un messaggio Table , Form o Table-Form . Il testo ({0} ) è sostituito dall'indice degli elementi.
|
Item {0} |
language_<languageTag> |
L'etichetta della lingua rappresentata da languageTag . Ad esempio, English per en nell'elenco a discesa di selezione della lingua disponibile quando si configura la chat multilingue. |
|
Language Label |
language_detect |
Etichetta per l'opzione di rilevamento automatico nel menu a discesa di selezione della lingua. | Detect Language |
languageSelectDropdown |
Descrizione comandi visualizzata quando gli utenti passano il mouse sul pulsante di selezione della lingua nell'intestazione. | Select chat language |
linkField |
Testo dell'espressione sostitutiva per un campo di collegamento in un messaggio Table , Form o Table-Form . Il segnaposto ({0} ) è sostituito dal linkLabel del campo.
|
Click on the highlighted text to open Link for {0} |
noSpeechTimeout |
Il testo di stato visualizzato quando il server di chat non è in grado di riconoscere la voce. | Could not detect the voice, no message sent. |
noText |
L'etichetta per il pulsante Nessuna conferma. | No |
openMap |
Etichetta del pulsante di azione utilizzata per aprire una mappa delle ubicazioni. | Open Map |
previousChats |
Testo di stato visualizzato alla fine dei messaggi meno recenti. | Previous conversations |
ratingStar |
Testo della descrizione comandi visualizzato per ogni stella di valutazione in un messaggio di feedback. Il segnaposto `{0}` viene sostituito dal numero di stelle selezionate dall'utente.
|
Rate {0} star |
recognitionTextPlaceholder |
Quando la modalità vocale è attivata, si tratta del testo segnaposto visualizzato nel campo del testo del riconoscimento. | Speak your message |
relTimeDay |
L'indicatore orario relativo visualizzato ogni giorno dalla ricezione del messaggio precedente. {0} viene sostituito dal numero di giorni trascorsi.
|
{0}d ago |
relTimeHr |
L'indicatore orario relativo che viene visualizzato ogni ora per le prime 24 ore dopo la ricezione del messaggio precedente. {0} viene sostituito dal numero di ore trascorse.
|
{0}hr ago |
relTimeMin |
L'indicatore orario relativo visualizzato ogni minuto dalla ricezione dell'ultimo messaggio. {0} viene sostituito dal numero di minuti trascorsi.
|
{0}min ago |
relTimeMoment |
L'indicatore orario relativo visualizzato dieci secondi dopo la ricezione del messaggio e prima che siano trascorsi 60 secondi dalla ricezione dell'ultimo messaggio. | A few seconds ago |
relTimeMon |
L'indicatore orario relativo visualizzato ogni mese dalla ricezione del messaggio precedente. {0} viene sostituito dal numero di mesi trascorsi.
|
{0}mth ago |
relTimeNow |
L'indicatore orario relativo visualizzato per un nuovo messaggio. | Now |
relTimeYr |
L'indicatore orario relativo visualizzato ogni anno dopo la ricezione del messaggio precedente. {0} viene sostituito dal numero di anni trascorsi.
|
{0}yr ago |
requestLocation |
Il testo visualizzato quando viene richiesta la posizione dell'utente. | Requesting location |
requestLocationDeniedPermission
|
Messaggio di errore visualizzato quando viene negata l'autorizzazione per accedere alla posizione. | Location permission denied. Please allow access to share your location, or else type in your location. |
requestLocationDeniedTimeout |
Messaggio di errore visualizzato quando la richiesta di posizione non viene risolta a causa di un timeout. | Taking too long to get your current location. Please try again, or else type in your location. |
requestLocationDeniedUnavailable |
Il messaggio di errore visualizzato quando la richiesta di posizione viene negata perché la posizione corrente del dispositivo client non è disponibile. | Your current location is unavailable. Please try again, or else type in your location. |
requestLocationString |
Testo dell'errore visualizzato quando l'utente nega la richiesta di ubicazione. | Cannot access your location. Please allow access to proceed further. |
retryMessage |
Il testo visualizzato quando il messaggio utente non è stato inviato al server. | Try again |
send |
La descrizione comandi viene visualizzata quando l'utente passa il puntatore del mouse sul pulsante Invia nel piè di pagina. | Send |
shareAudio |
Il testo della voce di menu nella condivisione del popup per la condivisione di un file audio | Share Audio |
shareFailureMessage |
Il messaggio di errore visualizzato quando si fa clic sul pulsante di azione di condivisione in un messaggio, ma l'API di condivisione non è disponibile nel dispositivo client o la richiesta di condivisione è stata rifiutata. | Sorry, sharing is not available on this device. |
shareFile |
Il testo della voce di menu nel popup di condivisione per la condivisione di un file generico | Share File |
shareLocation |
Testo della voce di menu per la condivisione di una posizione nel popup | Share Location |
shareVisual |
Il testo della voce di menu nel popup di condivisione per la condivisione di un'immagine o di un file video | Share Image/Video |
skillMessage |
Indicatore del messaggio di skill per i lettori di schermo. È parlato dai lettori di schermo prima delle risposte alle abilità. | Skill says |
speak |
Descrizione comandi visualizzata quando l'utente passa il puntatore del mouse sul pulsante Parla nel piè di pagina. | Speak |
typingIndicator |
Testo di accesso facilitato per l'indicatore di digitazione. È parlato dai lettori di schermo. | Waiting for response |
upload |
Descrizione comandi visualizzata quando l'utente passa il puntatore del mouse sul pulsante Carica nel piè di pagina. | Share popup |
uploadFailed |
Testo dell'errore visualizzato quando un caricamento non riesce. | Upload Failed. |
uploadFileSizeLimitExceeded |
Testo dell'errore visualizzato quando la dimensione del file di caricamento supera il limite. | Upload Failed. File size should not be more than 25MB. |
uploadFileSizeZeroByte |
Il testo di errore visualizzato quando si carica la dimensione del file è di 0 byte. | Upload Failed. Files of size zero bytes cannot be uploaded. |
uploadUnsupportedFileType |
Testo dell'errore visualizzato quando si tenta di caricare un tipo di file non supportato. | Upload Failed. Unsupported file type. |
userMessage |
Indicatore di messaggio utente per i lettori di schermo. È parlato dai lettori di schermo prima dei messaggi utente. | I say |
utteranceGeneric |
Descrizione di fallback per il messaggio di risposta utilizzato nell'espressione. | Message from skill. |
webViewAccessibilityTitle |
Titolo di accesso facilitato predefinito per la vista Web letta ad alta voce dai lettori di schermo. | In-widget WebView to display links |
webViewClose |
Il titolo predefinito label/tooltip per il pulsante di chiusura della vista Web.
|
Done |
webViewErrorInfoDismiss |
Descrizione comandi per il pulsante di chiusura utilizzato per chiudere il collegamento di fallback all'interno della vista Web. | 'Dismiss' |
webViewErrorInfoText |
Il testo informativo visualizzato nella vista Web quando il collegamento selezionato non può essere aperto al suo interno. Il testo tra {0} e {/0} viene impostato sul collegamento originale che viene aperto in una nuova scheda o finestra.
|
Sorry, we can't open this page in the chat window. Click {0}here{/0} to open it in your browser. |
yesText |
L'etichetta per il pulsante di conferma Sì. | Yes |
editFieldErrorMessage |
Messaggio di errore a livello di campo visualizzato quando il valore immesso dall'utente non è valido per tale campo. L'SDK assume per impostazione predefinita questo messaggio quando la competenza non fornisce un messaggio di errore client. | Field Input is invalid |
editFormErrorMessage |
Messaggio di errore a livello di modulo visualizzato sotto l'azione di sottomissione del modulo per la convalida lato client. Questo messaggio viene visualizzato quando almeno uno dei campi non è valido ed è presente più di un campo. L'SDK utilizza per impostazione predefinita questo messaggio quando lo skill non fornisce un messaggio di errore nel payload del messaggio. | Some of the fields need your attention. |
noResultText |
Testo di stato visualizzato quando non sono presenti corrispondenze da una ricerca utente nella vista elenco a selezione multipla. | No more results |
Configura opzioni menu condivisione
- file multimediali visivi (immagini e video)
- file audio
- file generali come documenti, PDF e fogli di calcolo
- posizione
L'impostazione
shareMenuItems
consente di limitare le voci visualizzate nel menu di condivisione. L'impostazione accetta un array di stringhe con tasti mappati alle voci del menu di condivisione: 'visual'
per la voce Condividi immagine/video, 'audio'
per la voce Condividi audio, 'file'
per la voce Condividi file e 'location'
per la voce Condividi posizione. È possibile utilizzare questi tasti, che non fanno distinzione tra maiuscole e minuscole, per specificare quali elementi sono disponibili nel menu (ad esempio, ['visual', 'location']
). Tutte le voci di menu sono disponibili quando l'array è vuoto o quando viene passato un valore non valido.
È possibile disabilitare la funzionalità degli allegati impostando
enableAttachment
su false
.
Non abilitare questa impostazione se la competenza si connette a un'istanza ODA versione 20.08 o viene eseguita su una versione precedente alla 20.08. Questa proprietà si applica solo alle connessioni abilitate per l'autenticazione del client alle versioni 20.12 e successive della piattaforma ODA.
Voci menu condivisione personalizzata
shareMenuItems
: {
type: string, // Space separated list of file formats, pass '*' to allow all supported file types
label: string, // OPTIONAL, label for the share menu item, should preferably be configured through i18n strings
icon?: string, // OPTIONAL, Icon image source path or SVG source string, the file icon is displayed as fallback
maxSize?: number // OPTIONAL, Maximum file size allowed for upload in KiloBytes, the maximum and fallback value is 25 MB (25600 KB)
}
La voce di menu può essere passata con o senza la categoria string
.
Suggerimento
Per supportare le etichette in più lingue, è consigliabile utilizzare il tag i18n anziché il taglabel
.
shareMenuItems
nella variabile settings
. Le etichette vengono impostate passandole con i tasti share_
, illustrati anche in questo snippet. È possibile impostare l'etichetta per un carattere jolly (*
) utilizzando il tasto share_all
i18n.const settings = {
shareMenuItems: [ {
type: 'odf',
label: 'Upload ODF',
}, {
type: 'pdf'
}, {
type: 'jpg png jpeg',
icon: 'https://image-source-site/imageicon'
}, {
type: 'doc docx xls',
maxSize: 4096
}],
i18n: {
en: {
share_pdf: 'Upload PDF',
share_jpg_png_jpeg: 'Upload Image',
share_doc_docx_xls: 'Upload document'
}
}
}
Personalizza classi CSS
Classe | Componente |
---|---|
oda-chat-launch-button
|
Pulsante di avvio widget chat |
oda-chat-button-clear
|
Pulsante Cancella messaggi |
oda-chat-button-close
|
Pulsante Chiudi widget |
oda-chat-button-narration
|
Pulsante di attivazione/disattivazione risposta audio dell'abilità |
oda-chat-button-send
|
Il pulsante Invia messaggio |
oda-chat-button-upload
|
Pulsante Carica file |
oda-chat-card
|
Il messaggio della carta |
oda-chat-closing
|
Applicato come pari livello a oda-chat-connection-status quando il widget si sta disconnettendo dal server
|
oda-chat-connected
|
Applicato come pari livello a oda-chat-connection-status quando il widget è connesso al server
|
oda-chat-connecting
|
Applicato come pari livello a oda-chat-connection-status quando il widget si connette al server
|
oda-chat-connection-status
|
Lo stato della connessione. Ogni valore di connessione ha anche la propria classe, ad esempio oda-chat-connected , oda-chat-disconnected o oda-chat-connecting .
|
oda-chat-conversation
|
Il contenitore per la conversazione |
oda-chat-disconnected
|
Applicato come pari livello a oda-chat-connection-status quando il widget è disconnesso dal server
|
oda-chat-footer
|
Il piè di pagina del widget chat |
oda-chat-footer-button
|
La classe comune per tutti i pulsanti del piè di pagina |
oda-chat-header
|
Intestazione widget chat |
oda-chat-header-button
|
La classe comune per tutti i pulsanti di intestazione |
oda-chat-icon-wrapper
|
Il wrapper per l'abilità o per una persona visualizzata accanto al messaggio. |
oda-chat-left
|
Il wrapper per il messaggio relativo allo skill |
oda-chat-logo
|
Logo sull'intestazione del widget |
oda-chat-message
|
La classe wrapper comune per tutti i messaggi di chat |
oda-chat-message-action-location
|
Pulsante Azione richiesta ubicazione |
oda-chat-message-action-postback
|
Pulsante Azione postback |
oda-chat-message-actions
|
Il wrapper dei pulsanti di azione |
oda-chat-message-bubble
|
La bolla dei messaggi |
oda-chat-message-global-actions
|
Wrapper dei pulsanti di azione globali |
oda-chat-message-icon
|
Immagine per lo skill o per una persona visualizzata accanto al messaggio. |
oda-chat-notification-badge
|
Il badge di notifica per i messaggi non visualizzati. |
oda-chat-rating-star
|
Pulsante della stella di valutazione in un messaggio di feedback |
oda-chat-rating-star-icon
|
Icona SVG per il pulsante della stella di valutazione |
oda-chat-right
|
Il wrapper per il messaggio utente |
oda-chat-title
|
Titolo nell'intestazione del widget |
oda-chat-user-input
|
L'area di testo di input dell'utente |
oda-chat-widget
|
Componente chat espanso che racchiude l'intestazione, la conversazione e il piè di pagina del widget. |
oda-chat-wrapper
|
Il wrapper per l'intero componente chat |
Personalizzare l'indicatore orario
Per impostazione predefinita, l'indicatore orario visualizzato nell'intestazione quando sono impostati timestampHeaderMode
e timestampHeaderFormat
visualizza il formato come giorno delle impostazioni nazionali della settimana, del mese, della data, dell'anno e dell'ora (am e pm). Ad esempio, giovedì 13 agosto 2020, 9:52:22. È possibile configurare questo indicatore orario passando le opzioni di formattazione nell'impostazione timestampFormat
. È possibile formattare l'indicatore orario passando una stringa di pattern di token di formattazione o passando un oggetto contenente le opzioni Intl.DateTimeFormat
.
Formattare la data e l'ora con stringhe pattern
timestampFormat: 'hh:mm:ss a'
l'indicatore orario viene impostato su 09:30:14 pm.
Questi token fanno distinzione tra maiuscole e minuscole, pertanto, ad esempio, il passaggio di
yyyy
anziché di YYYY
impedirebbe la visualizzazione dell'anno.
Componente | Token | Output |
---|---|---|
Giorno del mese |
|
|
Giorno della settimana. |
|
|
mese |
|
|
Anno |
|
|
Ora |
|
|
Minuto |
|
|
Second |
|
|
Frazionario secondo |
|
|
AM/PM |
|
|
fuso orario |
|
|
Formattare l'indicatore orario con gli oggetti Intl.DateTimeFormat
Property | Valori |
---|---|
dateStyle |
'full' | 'long' | 'medium' | 'short' |
timeStyle |
'full' | 'long' | 'medium' | 'short' |
weekday |
|
day |
|
month |
|
year |
|
era |
|
hour |
|
minute |
|
second |
|
timeZoneName |
|
timeZone |
il fuso orario;. Tutte le implementazioni devono riconoscere UTC . Il valore predefinito è il fuso orario predefinito del runtime. Le implementazioni possono anche riconoscere i nomi dei fusi orari del database dei fusi orari IANA, come Asia/Shanghai , Asia/Kolkata , America/New_York .
|
hour12 |
Se utilizzare l'ora 12 ore (invece dell'ora 24 ore). I valori disponibili sono true e false .
|
Personalizzare l'indicatore di valutazione dei messaggi di feedback
Il messaggio sul componente di feedback consente di raccogliere il feedback degli utenti. Se si utilizza l'SDK 21.10, la presentazione predefinita del componente di feedback è un sistema di classificazione a stelle, una riga orizzontale di stelle evidenziate quando gli utenti passano il mouse e le selezionano. È possibile modificare il funzionamento del componente utilizzando il componente Feedback utente, ma è possibile personalizzare l'aspetto dei componenti utilizzando le impostazioni SDK.
rating
nel campo icons
.
Suggerimento
Per una migliore esperienza utente, utilizzare una stringa SVG solida senza un colore di riempimento, in quanto consente un'evidenziazione riconoscibile al passaggio del mouse.new WebSDK({
URI: '<Server URI>',
//...,
icons: {
rating: '<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>' // A heart icon
}
})
Il colore dell'icona nei due stati, deselezionato e spostato/selezionato, può essere configurato rispettivamente con i campi di colore ratingStar
e ratingStarFill
nelle impostazioni dei colori.new WebSDK({
URI: '<Server URI>',
//...,
icons: {
rating: '<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.994 3.006a5.7 5.7 0 00-3.795 1.707L12 4.916l-.199-.202a5.676 5.676 0 00-8.128 0c-2.231 2.275-2.231 5.953 0 8.228L12 21.428l8.326-8.486A5.873 5.873 0 0022 8.828a5.873 5.873 0 00-1.675-4.115A5.693 5.693 0 0016.262 3z"/></svg>' // A heart icon
},
colors: {
ratingStar: '#ffebee',
ratingStarFill: '#d32f2f'
}
})
Suggerimento
È possibile personalizzare i prompt restituiti dal componente Feedback utente modificando i bundle di risorse correlate al feedback a cui si accede tramite la pagina Configurazione bundle risorse oppure modificando le chiavisystemComponent_Feedback_
in un file CSV del bundle di risorse esportato.
Invia il messaggio iniziale quando la cronologia della conversazione è vuota
initUserHiddenMessage
vengono inviati indipendentemente dalla cronologia delle conversazioni dell'utente; vengono inviati la prima volta che il widget di chat viene aperto per ogni sessione. Per inviare il messaggio iniziale quando la cronologia delle conversazioni è vuota, è necessario associare un listener di eventi al metodo Bots.on()
. Ad esempio:Bots = new WebSDK(chatSettings);
var isHandled = false;
var message = ;
Bots.on(WebSDK.EVENT.WIDGET_OPENED, function() {
if (!isHandled && Bots.isConnected() && !Bots.getConversationHistory().messagesCount) {
Bots.sendMessage(message, { hidden: true });
isHandled = true;
}
});
Bots.on(WebSDK.EVENT.NETWORK, function(state) {
if (!isHandled && Bots.isConnected() && Bots.isChatOpened() && !Bots.getConversationHistory().messagesCount) {
Bots.sendMessage(message, { hidden: true });
isHandled = true;
}
});
Bots.connect();
Iniezione del servizio di sintesi vocale
- Sei spesso limitato a voci innaturali e generiche che possono minare il tuo branding.
- Il dispositivo di un utente potrebbe non supportare voci specifiche di genere.
- Alcuni framework nativi (Cordova e ReactNative tra questi) richiedono librerie di terze parti per i servizi TTS perché le loro viste Web non espongono le API di sintesi vocale native richieste dall'SDK Web.
ttService
o chiamando il metodo setTTSService
(descritto nella documentazione che accompagna l'SDK). Puoi utilizzare un servizio fornito da Oracle, come Oracle Cloud Infrastructure (OCI) Speech Service, o uno fornito da terze parti.
Text-to-Speech
- Flag funzione:
enableBotAudioResponse: true
(l'impostazione predefinita èfalse
.) - Servizio TTS predefinito:
WebSDK.TTS.oracle
- Configurazione funzioni:
ttsVoice
Puoi arricchire l'esperienza conversazionale abilitando la sintesi vocale (TTS, text-to-speech) per parlare delle risposte mentre raggiungono l'SDK. L'SDK fornisce due tipi di servizio TTS predefiniti: WebSDK.TTS.platform
e WebSDK.TTS.oracle
. Per impostazione predefinita, l'SDK utilizza il servizio vocale OCI (Oracle Cloud Infrastructure) per le risposte parlate in modo più naturalistico. Questo servizio offre un'esperienza facilmente brandizzata perché offre diverse voci. Tuttavia, è possibile utilizzare il servizio TTS dipendente dalla piattaforma, WebSDK.TTS.platform
, basato sull'API di Web Speech. Utilizza le API di sintesi vocale sul dispositivo dell'utente per parlare delle risposte.
ttsVoice
per configurare la voce per il TTS. Ogni elemento nell'array deve essere un oggetto con almeno un campo lang
o name
. L'SDK cerca la disponibilità di ogni voce nell'ordine in cui viene passata nell'impostazione. La prima partita completa viene impostata come voce. Se non viene trovata alcuna corrispondenza esatta, l'SDK utilizza la prima corrispondenza in base al solo valore lang
. Se non esiste ancora alcuna corrispondenza, l'SDK utilizza la voce predefinita.const settings = {
...,
enableBotAudioResponse: true,
ttsVoice: [{
lang: 'en-US',
name: 'Samantha'
}, {
lang: 'en-US',
name: 'Alex'
}, {
lang: 'en-UK'
}]
}
Per adattare il modo in cui vengono pronunciate le espressioni, l'array ttsVoice
consente di passare le proprietà facoltative pitch
, rate
e volume
in ogni elemento. Queste proprietà corrispondono agli stessi campi dell'interfaccia SpeechSynthesisUtterance.
- Il valore della proprietà
pitch
può essere compreso tra 0 e 2. - La proprietà
rate
può avere un valore compreso tra 0,1 e 10. - La proprietà
volume
può avere un valore compreso tra 0 e 1.
const settings = {
// ....,
ttsVoice: [{
lang: 'en-us',
name: 'Alex',
pitch: 1.5,
rate: 2,
volume: 0.8
}, {
lang: 'en-us',
name: 'Victoria',
pitch: 1.2,
rate: 1.7,
}, {
lang: 'en',
name: 'Fiona',
pitch: 2,
}, {
lang: 'en'
}]
}
Interfaccia del servizio di sintesi vocale
SpeechSynthesisService
per l'istanza del servizio TTS che si sta per inserire./**
* Interface for the speech synthesis service; this can be used to define a service that can be
* injected into the SDK to perform speech synthesis on behalf of the skill or assistant
*/
interface SpeechSynthesisService {
/**
* Adds a phrase to the utterance queue to be spoken
* @param phrase string
*/
speak(phrase: string): void;
/**
* Cancels any ongoing speech synthesis utterance
*/
cancel(): void;
/**
* Returns a Promise that resolves into a list of SpeechSynthesisServiceVoice objects representing
* the available voices
*
* @return {*} {Promise<SpeechSynthesisServiceVoice[]>}
*/
getVoices(): Promise<SpeechSynthesisServiceVoice[]>;
/**
* Sets the voice to be used for speaking the utterances. It accepts an array of candidate voices
* sorted in their preference order, and sets one of them according to its matching criteria.
* It returns a Promise that gets resolved when the voice is set.
*
* @param {SpeechSynthesisServiceVoice[]} voice
* @return {*} {Promise<void>}
*/
setVoice(voices: SpeechSynthesisServiceVoice[]): Promise<void>;
/**
* Returns the voice that is used for speaking the utterances
*/
getVoice(): SpeechSynthesisServiceVoice;
/**
* Adds listener to SpeechSynthesisServiceEvent
*
* @param {SpeechSynthesisServiceEvent} event
* @param {Function} listener
*/
on(event: SpeechSynthesisServiceEvent, listener: () => void): void;
/**
* Removes listener(s) to SpeechSynthesisServiceEvent
*
* @param {SpeechSynthesisServiceEvent} event
* @param {Function} listener
*/
off(event: SpeechSynthesisServiceEvent, listener?: () => void): void;
}
/**
* Represents a voice that the SpeechSynthesisService supports. Every SpeechSynthesisServiceVoice has
* its own relative speech service including information about language, name and optionally more.
*/
interface SpeechSynthesisServiceVoice {
/**
* Returns a BCP 47 language tag indicating the language of the voice
*/
readonly lang: string;
/**
* Returns a human-readable name that represents the voice
*/
readonly name: string;
/**
* Pitch of the voice, can range between 0 and 2, default is 1
* Optional
*/
pitch?: number;
/**
* Speed at which the utterance is spoken at, can range between 0.1 and 10, default is 1
* Optional
*/
rate?: number;
/**
* Volume at which the utterance is spoken at, can range between 0 and 1, default is 1
* Optional
*/
volume?: number;
}
L'oggetto
SpeechSynthesisServiceEvent
dispone di due eventi, TTSPlay
e TTSEnd
:const SpeechSynthesisServiceEvent = {
TTSPlay: 'tts:play',
TTSEnd: 'tts:end'
}
setTTSService(service)
.
Dopo l'inserimento del servizio TTS, l'SDK gestisce le chiamate ai metodi di servizio per l'esecuzione dei messaggi. Tuttavia, è possibile chiamare direttamente questi metodi oppure utilizzare i metodi TTS esposti dall'SDK per qualsiasi esigenza. In modalità headless, ad esempio, è possibile chiamare il metodo Bots.speakTTS(message)
per passare un messaggio ricevuto dalla competenza. L'SDK gestisce sia l'analisi del testo pronunciabile dal messaggio che il passaggio di questo testo al servizio TTS in modo che possa essere pronunciato.