> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lovi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Integració WebView del Widget

> Wrapper web incrustable per injectar el widget de xat de Lovi

## Introducció

L'endpoint Widget WebView és un wrapper HTML interactiu que permet incrustar de forma segura el widget de xat de Lovi dins de pàgines web o aplicacions mòbils. En lloc de retornar una resposta JSON estàndard, aquest endpoint serveix un document HTML complet que conté un `iframe` que apunta a la interfície de xat.

Aquest wrapper actua com un pont segur, obtenint les metadades d'integració necessàries (com el missatge de benvinguda de l'agent i la configuració d'idioma) al costat del servidor i injectant-les de forma segura a la webview utilitzant comunicació `postMessage` estàndard.

***

## 🌐 Obtenir WebView del Widget

> **Mètode**: GET **Format**: HTML

### Endpoint

```
GET https://cloud.lovi.ai/functions/v1/widgetWebView
```

*Format de ruta alternatiu:* `GET https://cloud.lovi.ai/functions/v1/widgetWebView/{customer_id}/{widget_id}`

### Paràmetres de Consulta

Si no utilitzes l'estructura de ruta esmentada anteriorment, has de passar els paràmetres requerits a la cadena de consulta.

| Paràmetre     | Requerit | Descripció                                                                                                           |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| `customer_id` | Sí       | La teva Access Key de l'empresa utilitzada per validar permisos.                                                     |
| `widget_id`   | Sí       | L'`uuid` específic del compte del canal/widget que vols carregar.                                                    |
| `lang`        | No       | Codi d'idioma de destinació (p. ex. `es`, `en`, `pt`). Si es proporciona, els missatges de benvinguda es tradueixen. |
| `showClose`   | No       | Booleà com a string (`true` o `false`). Per defecte `true`. Determina si el widget es pot tancar.                    |

### Com Funciona

1. **Autenticació**: El servidor valida el `customer_id` (Access Key) i verifica la propietat del `widget_id`.
2. **Obtenció de Metadades**: Recupera la configuració del widget i opcionalment consulta el backend de traducció de Lovi per traduir el missatge de benvinguda de l'agent al `lang` sol·licitat.
3. **Lliurament d'HTML**: El servidor retorna una pàgina HTML que conté un `<iframe src="https://widget.lovi.ai/?cw_id=...">`.
4. **Pont PostMessage**: L'HTML carregat conté JavaScript que escolta els events `get_widget` i `get_customer` disparats per l'iframe. Respon de forma segura amb la configuració del widget (`widgetData`) i gestiona l'emmagatzematge local (com generar un ID d'usuari únic).

### Errors Comuns

Si el widget falla en carregar-se, pots rebre un dels següents codis d'estat HTTP en lloc del payload HTML:

* **400 Bad Request**: Falten `customer_id` o `widget_id`, o el `widget_id` no és un UUID vàlid.
* **403 Forbidden**: `customer_id` invàlid (fallada en la validació de l'Access Key).
* **404 Not Found**: No s'ha pogut trobar l'empresa o el widget especificat.
* **500 Internal Server Error**: S'ha produït un error inesperat en generar el wrapper.

> 🧭 **Important**: Si el widget apareix encallat en una pantalla de "Loading Widget...", comprova la consola del navegador. Assegura't que el teu entorn permeti iframes de cross-origin i no bloquegi la comunicació `postMessage` entre el WebView i `widget.lovi.ai`.
