Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
_Toc450223111
_Toc450223111
Configurazione di un  Widget

Per poter essere caricato in AgentDesktop, il Widget deve prima essere configurato in AgentDesktopManager. Per prima cosa è necessario crearlo andando nella sezione Widgets, compilare i campi e salvare il widget appena creato. Se il widget che si vuole creare è monocontatto, effettuare le operazioni nella sezione AgentDesktop widgets; nel caso in cui sia multicontatto, compilare i campi nella sezione Multicontact widgets.
I campi da compilare sono i seguenti:

Nome Campo

Descrizione

Esempio

Widget ID

Identificativo univoco del widget che verrà utilizzato per invio di notifiche e messaggi all'interno di AgentDesktop.

AGENTDESKTOP_MY_WIDGET

Widget Title

Titolo del Widget che verrà visualizzato in AgentDesktop nella barra laterale o nel tooltip in caso di configurazione di un Widget Multi-Contatto.

My Widget

Widget URI

URL della propria web-app da caricare. Può essere di tipo relativo nel caso l'applicazione venga ospitata sullo stesso server dove è presente AgentDesktop, oppure, grazie al supporto della funzionalità Post Message da parte della libreria SDK, può essere un indirizzo appartenente ad un dominio differente rispetto ad AgentDektop.

https://www.myapp.com

Widget Icon

Icona del Widget che verrà visualizzata in AgentDesktop. E' possibile utilizzare la collezione di icone di Font Awesome già disponibile in AgentDesktop. Fare riferimento al seguente link per disporre di una anteprima. https://fontawesome.com/v4.7.0/icons/

fa fa-lightbulb-o fa-2x


Infine, è necessario abilitarlo andando nella sezione Profiles, scegliere il profilo a cui associare la visualizzazione del widget creato e nella parte relativa ai Widgets o Multicontact (se multicontatto), cliccare sul suo nome per portarlo nella colonna di quelli abilitati.

Anchor
_Toc450223112
_Toc450223112
Creazione di un Widget

Per consentire la comunicazione bidirezionale della propria Web-App con AgentDesktop è necessario caricare la libreria di sviluppo AgentDesktop SDK:

Code Block
languagejs
    <!-- AgentDesktop SDK Widget -->
    <script type="text/javascript" src="/AD/widget/agentdesktop_widget.js"></script>

In questo modo si avrà a disposizione un namespace AGENTDESKTOP.
Con il namespace AGENTDESKTOP si avrà a disposizione una serie di oggetti che consentono di controllare le seguenti funzionalità:

  • Gestione dei Tab/Schede dei singoli Widget di AgentDesktop (AGENTDESKTOP.TAB),

  • Visualizzazione di finestre/pannelli informativi custom (AGENTDESKTOP.ALERT),

  • Controllo dei Widget, registrazione di proprie callback per la notifica di eventi (AGENTDESKTOP.WIDGET),

  • Gestione dei Contatti, effettuare chiamate, eseguire trasferimenti (AGENTDESKTOP.CONTACT),

  • Gestione dello stato e della schedulabilità di un operatore (AGENTDESKTOP.AGENT),

  • Gestione di un contatto di tipologia chat, invio di un messaggio testuale (AGENTDESKTOP.CHAT),

  • Gestione e notifica degli eventi relativi all'apertura/chiusura delle finestre di dialogo in AgentDesktop (AGENTDESKTOP.UI).

Anchor
_Toc450223113
_Toc450223113
Requisiti

La possibilità di integrazione di un applicazione web all'interno di AgentDesktop utilizzando i Widget è soggetta ad alcune requisiti.

X-Frame-Options

Molti amministratori di sistema di default settano IIS per evitare che le pagine web hostate possano essere inserite da altri come iframe su altri domini (siti web) e questo avviene per motivi di sicurezza (per evitare il "framesniffing").
Viene riportato un esempio di abilitazione per IIS o su web.config l'header "X-Frame-Options" come segue:

<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="ALLOW-FROM url_del_ContaCT" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>

Le altre 2 opzioni possono essere: SAMEORIGIN o DENY.

Controllo del TOP

Alcune applicazioni web verificano se sono incluse in un iframe, in qual caso cercano di ricaricarsi sostituendo la pagina principale.
Un esempio di questo codice è come segue:
<script type="text/javascript">
if (top.frames.length!=0)
top.location=self.document.location;
</script>
In questo caso, si dovrà modificare il codice per permettere l'inclusione in un iframe se la finestra padre è un url di Contact.