> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.drimify.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Integra Drimify utilizzando Webview.

# Come integrare le esperienze Drimify nella tua app mobile utilizzando WebView

Puoi facilmente incorporare le esperienze Drimify (come giochi, quiz e percorsi interattivi) nella tua app mobile utilizzando una WebView. Questo consente agli utenti di accedere alle tue esperienze personalizzate e responsive senza lasciare l'app.

Questa guida copre:

* **Prerequisiti**
* **Come integrare WebView su Android e iOS**
* **Migliori pratiche**
* **Integrazioni avanzate opzionali**
* **Supporto per deep link nelle CTA**

### Prerequisiti

Prima di incorporare un'esperienza Drimify, assicurati di avere:

* Un link di un'esperienza Drimify pubblicata, ad esempio, `https://apps.drimify.com/XBs15jKF/`
* Un metodo per raccogliere o passare un identificatore utente (es. email, telefono o ID di sessione)
* Un'app mobile (iOS/Android) con la capacità di visualizzare una WebView

### Integrazione Android (WebView)

Ecco come caricare un'esperienza Drimify in una WebView su Android:

```
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;

public class DrimifyActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView webView = new WebView(this);
        setContentView(webView);

        webView.setWebViewClient(new WebViewClient());
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);

        // Carica l'URL dell'esperienza (con session_id opzionale)
        String sessionId = "user_abc_123"; // Sostituisci con l'ID effettivo
        String url = "https://apps.drimify.com/XBs15jKF/?session_id=" + sessionId;
        webView.loadUrl(url);
    }
}
```

### Integrazione iOS (WKWebView)

Per incorporare su iOS, utilizza WKWebView con JavaScript abilitato:

```
import UIKit
import WebKit

class DrimifyViewController: UIViewController {
    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let config = WKWebViewConfiguration()
        config.preferences.javaScriptEnabled = true

        webView = WKWebView(frame: self.view.bounds, configuration: config)
        self.view.addSubview(webView)

        let sessionId = "user_abc_123" // Sostituisci con l'ID effettivo
        let url = URL(string: "https://apps.drimify.com/XBs15jKF/?session_id=\(sessionId)")!
        webView.load(URLRequest(url: url))
    }
}
```

### Identificazione Utente e Gestione delle Sessioni

Per tracciare gli utenti e riprendere le sessioni, utilizza:

* **Inserimento dati alla schermata iniziale:** Raccogli identificatori come email o telefono.
* **Form di raccolta dati intermedia:** Abilita form più completi prima dell'accesso.
* **Parametro `session_uid`:** Aggiungilo all'URL (es. `?session_uid=abc123`).
* **Guida completa alla gestione delle sessioni:** Drimify Help: [Session Unique ID](https://help.drimify.com/it/article/id-unico-per-sessione-3d0175/)

### Supporto per Deep Link nelle CTA

Le esperienze Drimify possono includere deep link nelle CTA (pulsanti Call-to-Action) all'interno del gioco. Ciò significa che gli utenti possono essere diretti a pagine o azioni specifiche all'interno della tua app mobile dopo aver completato determinati passaggi nell'esperienza Drimify. Ad esempio, un pulsante "Fine" all'interno di un gioco può essere impostato per collegarsi direttamente a una pagina di prodotto o a un'offerta speciale all'interno dell'app. Il deep link supporta una navigazione fluida tra l'esperienza Drimify e il contenuto della tua app. Per implementarlo, assicurati che la tua app abbia i gestori di deep link configurati per rispondere a URL o azioni specifiche.

### Migliori Pratiche

* Assicurati che JavaScript sia abilitato nella WebView.
* Abilita l'archiviazione DOM per un'esperienza più fluida.
* **Non disabilitare JavaScript o bloccare script come Angular:** Alcune impostazioni di WebView potrebbero disabilitare JavaScript o bloccare librerie essenziali (come Angular), impedendo il corretto funzionamento dell'esperienza Drimify.
* Le esperienze Drimify sono progettate per essere completamente responsive e ottimizzate per il mobile.### Integrazione Avanzata degli Eventi (Opzionale)

Se hai bisogno di:

* Monitorare il completamento delle esperienze
* Recuperare i punteggi
* Personalizzare il comportamento

Utilizza l'API di integrazione HTML di Drimify e ascolta gli eventi tramite JavaScript all'interno del WebView.

**Guida completa:** [Integrazione Avanzata dell'API HTML di Drimify](https://help.drimify.com/it/article/integrazione-avanzata-del-codice-di-integrazione-html-widget-tramite-lapi-8tcsrm/)

> Nota: Questa operazione richiede l'iniezione di JavaScript e la gestione dei messaggi tra il WebView e l'app.


### Hai bisogno di aiuto?

Se riscontri problemi con gli ID delle sessioni, il rendering del WebView, il deep linking, o altre domande riguardanti l'integrazione, ti preghiamo di contattarci.