Share via


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

Le plug-in Microsoft Mixed Reality WebView pour Unity permet l’intégration de la fonctionnalité WebView2 dans votre application HoloLens 2. Ce plug-in WebView pour Unity simplifie l’intégration de la fonctionnalité WebView2 à votre application HoloLens 2 en encapsulant le contrôle WebView2, en gérant automatiquement le rendu et en dirigeant 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 la communication 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 deux en préversion et peuvent être modifiés avant la disponibilité générale. WebView2 Preview est disponible dans la préversion Insider pour Microsoft HoloLens. Pour accéder à cette préversion, vous devez être inscrit au programme Windows Insider ; consultez Commencer à recevoir des builds Insider dans la préversion d’Insider pour Microsoft HoloLens.

WebView2 et le plug-in WebView sont uniquement pris en charge sur HoloLens 2 appareils exécutant la mise à jour 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 HoloLens 2 applications Unity.

IWebView Interface

Interface main pour le 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

Événement IWebView.Navigated

É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;
}

Événement IWebView.WindowCloseRequested

Événement déclenché lorsque l’événement CoreWebView2.WindowCloseRequested 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 vers lequel le contenu WebView est rendu. Readonly

IWebView.Width, propriété

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

IWebView.Height, propriété

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

IWebView.Page, propriété

URI actuellement chargé ou en cours de navigation par le contrôle WebView. Readonly

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é. Readonly

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 de .Texture Pour plus d’informations, consultez la propriété CoreWebView2Controller.Bounds sous-jacente.

Notez que les dimensions rendues du IWebView instance dans la scène Unity sont contrôlées par .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 à un IWebView instance.

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

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

IWithMouseEvents, interface

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

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

Méthodes IWithMouseEvents

IWithMouseEvents.MouseEvent, méthode

Propage un WebViewMouseEventData événement vers le contrôle WebView. Selon la logique interne, l’événement entraîne l’appel de la méthode CoreWebView2Controller.SendMouseInput ou de la méthode 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 d’interopérabilité entre le code Unity et le code WebView hébergé.

Pour en savoir plus sur l’interopérabilité dans WebView2, consultez Interopérabilité du 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 à partir 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);
}

Méthodes IWithPostMessage

IWithPostMessage.PostMessage, méthode

Envoie un message JavaScript au contenu hébergé dans le contrôle WebView. En fonction du isJSON paramètre, cela entraîne l’appel de la méthode CoreWebView2.PostWebMessageAsString ou de la méthode 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();
}

IWithBrowserDéléments d’aventure

public delegate void WebView_OnCanGoBackUpdated(bool value);

public delegate void WebView_OnCloseRequested();

Événements IWithBrowserHistory

Événement IWithBrowserHistory.CanGoForwardUpdated

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

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

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

Événement IWithBrowserHistory.CanGoBackUpdated

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

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

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

Méthodes IWithBrowserHistory

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();