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