Partager via


Informations de référence sur l’API pour le plug-in Mixed Reality WebView (préversion)

Important

WebView2 continue d’être disponible. Toutefois, la prise en charge de WebView2 sur HoloLens n’est plus prise en charge (aucun correctif de bogue, mises à jour de contenu ou support technique) et nous ne pouvons donc garantir que les applications continueront de fonctionner pendant une période prolongée.

Le plug-in Microsoft Mixed Reality WebView pour Unity permet l’intégration de fonctionnalités WebView2 à votre application HoloLens 2. Ce plug-in WebView pour Unity simplifie l’intégration de fonctionnalités WebView2 à votre application HoloLens 2 en encapsulant le contrôle WebView2, en gérant automatiquement le rendu et en directisant automatiquement l’entrée vers le contrôle WebView2.

Ce plug-in gère également l’interopérabilité entre Unity et WebView2, ce qui permet de communiquer entre JavaScript et Unity via des messages et des événements.

Ce plug-in expose un sous-ensemble des fonctionnalités disponibles via CoreWebView2.

WebView2 sur HoloLens 2 et le plug-in WebView pour Unity sont tous les deux en préversion et sont susceptibles de changer avant la disponibilité générale. La préversion de WebView2 est disponible dans la préversion Insider pour Microsoft HoloLens. Pour accéder à cette préversion, vous devez être inscrit au programme Windows Insider ; voir Commencer à recevoir des builds Insider en préversion Insider pour Microsoft HoloLens.

WebView2 et le plug-in WebView ne sont pris en charge que sur les appareils HoloLens 2 exécutant la mise à jour de Windows 11. Pour plus d’informations, consultez Mettre à jour HoloLens 2.

Pour plus d’informations sur la prise en main du plug-in WebView pour Unity, consultez Prise en main de WebView2 dans les applications HoloLens 2 Unity.

IWebView, interface

Interface principale du plug-in WebView pour Unity.

public interface IWebView
{
    event WebView_OnNavigated Navigated;

    event WebView_OnCloseRequested WindowCloseRequested;

    GameObject GameObject { get; }

    Texture2D Texture { get; }

    int Width { get; set; }

    int Height { get; set; }

    Uri Page { get; }
    
    Task OnceCreated { get; }

    void Resize(int width, int height);

    void Load(Uri url);

    void Dispose();
}

Délégués IWebView

public delegate void WebView_OnNavigated(string path);

public delegate void WebView_OnCanGoForwardUpdated(bool value);

Événements IWebView

IWebView.Navigated, événement

Événement déclenché lorsque l’événement CoreWebView2.SourceChanged est déclenché par WebView.

Exemple
webView.Navigated += OnNavigated;

private void OnNavigated(string uri)
{
    UrlField.text = uri;
}

IWebView.WindowCloseRequested Event

Événement déclenché lorsque CoreWebView2.WindowCloseRequested Event est déclenché par WebView.

Exemple
webView.WindowCloseRequested += OnWindowCloseRequested;

private void OnWindowCloseRequested()
{
    Destroy(GameObject);
}

Propriétés IWebView

IWebView.GameObject, propriété

Entité Unity GameObject de niveau supérieur qui représente le plug-in WebView dans la scène. En lecture seule.

IWebView.Texture, propriété

Objet Unity Texture2D 2D dans lequel le contenu WebView est rendu. En lecture seule

IWebView.Width, propriété

Largeur de la texture WebView et du contrôle WebView. Les dimensions rendues de l’instance IWebView dans la scène Unity sont contrôlées par le GameObject.

IWebView.Height, propriété

Hauteur de la texture WebView et du contrôle WebView. Les dimensions rendues de l’instance IWebView dans la scène Unity sont contrôlées par le GameObject.

IWebView.Page, propriété

URI actuellement chargé ou en cours d’accès par le contrôle WebView. En lecture seule

IWebView.OnceCreated, propriété

La tâche s’exécute lorsque le contrôle WebView a été entièrement instancié et prêt à être utilisé. En lecture seule

Exemple
webView.OnceCreated.ContinueWith((task) => {

    // Finish setting up plugin.
    webview.Navigated += OnNavigated;
    webview.WindowCloseRequested += OnWindowCloseRequested;

    Load(initialURL);

}, TaskScheduler.FromCurrentSynchronizationContext());

Méthodes IWebView

IWebView.Resize, méthode

Modifie la taille du contrôle WebView2 et du Texture. Pour plus d’informations, consultez la propriété CoreWebView2Controller.Bounds sous-jacente.

Les dimensions rendues de l’instance IWebView dans la scène Unity sont contrôlées par le GameObject.

Exemple
Resize(600, 400);

IWebView.Load, méthode

Permet d’accéder à l’URI spécifié. Pour plus d’informations, consultez la méthode CoreWebView2.Navigate sous-jacente.

Exemple
Load(new Uri("https://www.microsoft.com"));

IWebView.Dispose, méthode

Efface les ressources telles que la mémoire, les handles et les rappels liés à une IWebView instance.

Appelez cette méthode lorsque vous avez terminé avec une instance particulière IWebView pour vous assurer que la mémoire interne est correctement libérée. Une fois Dispose appelée, l’instance IWebView doit être considérée comme non valide.

Exemple
void OnDestroy()
{
    webView.Dispose();
}

IWithMouseEvents, interface

Prend en charge l’entrée de souris et de pointeur pour le plug-in WebView pour Unity.

public interface IWithMouseEvents
{
    void MouseEvent(WebViewMouseEventData mouseEvent);
}

IWithMouseEvents, méthodes

IWithMouseEvents.MouseEvent, méthode

Propage un WebViewMouseEventData événement au contrôle WebView. Selon la logique interne, l’événement entraîne l’appel de la méthode CoreWebView2Controller.SendMouseInput ou coreWebView2Controller.SendPointerInput.

Exemple
public void OnPointerDown(PointerEventData eventData)
{
    IWithMouseEvents mouseEventsWebView = webView as IWithMouseEvents;

    // Call hypothetical function which converts the event's x, y into the WebView2's coordinate space.
    var hitCoord = ConvertToWebViewSpace(eventData.position.x, eventData.position.y);

    WebViewMouseEventData mouseEvent = new WebViewMouseEventData
    {
        X = hitCoord.x,
        Y = hitCoord.y,
        Type = PointerEvent.PointerDown,
        Button = PointerButton.Left,
        TertiaryAxisDeviceType = WebViewMouseEventData.TertiaryAxisDevice.PointingDevice
    };

    mouseEventsWebView.MouseEvent(mouseEvent);
}

IWithPostMessage, interface

Interface pour la communication interop entre le code Unity et le code WebView hébergé.

Pour en savoir plus sur l’interopérabilité dans WebView2, consultez Interopérabilité de code côté natif et côté web.

public interface IWithPostMessage : IWebView
{
    event WebView_OnPostMessage MessageReceived;

    void PostMessage(string message, bool isJSON = false);
}

Délégués IWithPostMessage

public delegate void WebView_OnPostMessage(string message);

Événements IWithPostMessage

IWithPostMessage.MessageReceived, méthode

Déclenché lorsqu’un nouveau message JavaScript est reçu du contrôle WebView. Pour plus d’informations, consultez l’événement CoreWebView2.WebMessageReceived sous-jacent.

Exemple
(webView as IWithPostMessage).MessageReceived += OnMessageReceived;

void OnMessageReceived(string message)
{
    Debug.Log(message);
}

IWithPostMessage, méthodes

IWithPostMessage.PostMessage, méthode

Envoie un message JavaScript au contenu hébergé dans le contrôle WebView. Selon le isJSON paramètre, cela entraîne l’appel de la méthode CoreWebView2.PostWebMessageAsString ou coreWebView2.PostWebMessageAsJson.

var msg = new MyMessage("updateText", "Updated from Unity!");

(webView as IWithPostMessage).PostMessage(JsonUtility.ToJson(msg), true);

IWithBrowserHistory, interface

Gère les fonctionnalités liées à l’historique du navigateur, telles que la navigation vers une page précédente.

public interface IWithBrowserHistory : IWebView
{
    event WebView_OnCanGoForwardUpdated CanGoForwardUpdated;

    event WebView_OnCanGoBackUpdated CanGoBackUpdated;

    void GoBack();

    void GoForward();
}

Délégués IWithBrowserHistory

public delegate void WebView_OnCanGoBackUpdated(bool value);

public delegate void WebView_OnCloseRequested();

Événements IWithBrowserHistory

IWithBrowserHistory.CanGoForwardUpdated Event

Déclenché lorsque la navigation se produit. Le délégué d’événement fournit une true valeur si CoreWebView2.CanGoForward, propriété est true.

Exemple
(webView as IWithBrowserHistory).CanGoBackUpdated += OnCanGoBack;

void OnCanGoBack(bool value)
{
    BackButton.enabled = value;
}

IWithBrowserHistory.CanGoBackUpdated Event

Déclenché lorsque la navigation se produit. Le délégué d’événement fournit une true valeur si CoreWebView2.CanGoBack, propriété est true.

Exemple
(webView as IWithBrowserHistory).CanGoForwardUpdated += OnCanGoForward;

void OnCanGoForward(bool value)
{
    ForwardButton.enabled = value;
}

IWithBrowserHistory, méthodes

IWithBrowserHistory.GoBack, méthode

Accède à la page précédente. Pour plus d’informations, consultez la méthode CoreWebView2.GoBack sous-jacente.

Exemple
(webView as IWithBrowserHistory).GoBack();

IWithBrowserHistory.GoForward, méthode

Accède à la page suivante. Pour plus d’informations, consultez la méthode CoreWebView2.GoForward sous-jacente.

Exemple
(webView as IWithBrowserHistory).GoForward();