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