Referencia de API para el complemento WebView de Mixed Reality (versión preliminar)
Importante
WebView2 sigue estando disponible. Sin embargo, la compatibilidad con WebView2 en HoloLens se interrumpe (sin correcciones de errores, actualizaciones de contenido ni soporte técnico) y, por tanto, no podemos garantizar que las aplicaciones seguirán funcionando durante cualquier período de tiempo prolongado.
El complemento WebView de Microsoft Mixed Reality para Unity permite la integración de la funcionalidad WebView2 en la aplicación HoloLens 2. Este complemento WebView para Unity simplifica la integración de la funcionalidad de WebView2 en la aplicación HoloLens 2 ajustando el control WebView2, controlando automáticamente la representación y dirigir automáticamente la entrada al control WebView2.
Este complemento también administra la interoperabilidad entre Unity y WebView2, lo que permite la comunicación entre JavaScript y Unity a través de mensajes y eventos.
Este complemento expone un subconjunto de la funcionalidad que está disponible a través de CoreWebView2.
WebView2 en HoloLens 2 y el complemento WebView para Unity están en versión preliminar y están sujetos a cambios antes de la disponibilidad general. La versión preliminar de WebView2 está disponible en Insider Preview para Microsoft HoloLens. Para acceder a esta versión preliminar, debe inscribirse en el Programa Windows Insider; consulte Empezar a recibir compilaciones de Insider en la versión preliminar de Insider para Microsoft HoloLens.
WebView2 y el complemento WebView solo se admiten en dispositivos HoloLens 2 que ejecutan la actualización de Windows 11. Para obtener más información, consulta Actualizar HoloLens 2.
Para obtener información sobre cómo empezar a trabajar con el complemento WebView para Unity, consulte Introducción a WebView2 en aplicaciones de Unity de HoloLens 2.
IWebView (interfaz)
La interfaz principal del complemento WebView para 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();
}
Delegados de IWebView
public delegate void WebView_OnNavigated(string path);
public delegate void WebView_OnCanGoForwardUpdated(bool value);
Eventos IWebView
Evento IWebView.Navigated
Evento desencadenado cuando WebView genera el evento CoreWebView2.SourceChanged.
Ejemplo
webView.Navigated += OnNavigated;
private void OnNavigated(string uri)
{
UrlField.text = uri;
}
Evento IWebView.WindowCloseRequested
Evento desencadenado cuando WebView genera el evento CoreWebView2.WindowCloseRequested.
Ejemplo
webView.WindowCloseRequested += OnWindowCloseRequested;
private void OnWindowCloseRequested()
{
Destroy(GameObject);
}
Propiedades de IWebView
IWebView.GameObject (propiedad)
La entidad GameObject de unity de nivel superior que representa el complemento WebView en la escena. Readonly.
IWebView.Texture (propiedad)
Objeto de Unity Texture2D
2D en el que se representa el contenido de WebView. Readonly
IWebView.Width (propiedad)
Ancho de la textura WebView y el control WebView. Las dimensiones representadas de la instancia de la IWebView
escena de Unity se controlan mediante .GameObject
IWebView.Height (propiedad)
Alto de la textura de WebView y el control WebView. Las dimensiones representadas de la instancia de la IWebView
escena de Unity se controlan mediante .GameObject
IWebView.Page (propiedad)
El URI cargado actualmente o al que navega el control WebView. Readonly
IWebView.OnceCreated (propiedad)
La tarea se ejecuta cuando el control WebView se ha creado una instancia completa y está listo para usarse. Readonly
Ejemplo
webView.OnceCreated.ContinueWith((task) => {
// Finish setting up plugin.
webview.Navigated += OnNavigated;
webview.WindowCloseRequested += OnWindowCloseRequested;
Load(initialURL);
}, TaskScheduler.FromCurrentSynchronizationContext());
Métodos IWebView
IWebView.Resize (método)
Cambia el tamaño del control WebView2 y .Texture
Para obtener más información, consulte la propiedad CoreWebView2Controller.Bounds subyacente.
Las dimensiones representadas de la instancia de la IWebView
escena de Unity se controlan mediante .GameObject
Ejemplo
Resize(600, 400);
IWebView.Load (método)
Navega al URI especificado. Para obtener más información, consulte el método CoreWebView2.Navigate subyacente.
Ejemplo
Load(new Uri("https://www.microsoft.com"));
Método IWebView.Dispose
Borra recursos como la memoria, los identificadores y las devoluciones de llamada que están relacionadas con una IWebView
instancia.
Invoque este método cuando haya terminado con una instancia determinada IWebView
para asegurarse de que la memoria interna está libre correctamente. Después Dispose
de llamar a , la IWebView
instancia debe considerarse no válida.
Ejemplo
void OnDestroy()
{
webView.Dispose();
}
IWithMouseEvents (interfaz)
Admite la entrada de mouse y puntero para el complemento WebView para Unity.
public interface IWithMouseEvents
{
void MouseEvent(WebViewMouseEventData mouseEvent);
}
Métodos IWithMouseEvents
Método IWithMouseEvents.MouseEvent
Propaga un WebViewMouseEventData
evento al control WebView. En función de la lógica interna, el evento produce una llamada al método CoreWebView2Controller.SendMouseInput o al método CoreWebView2Controller.SendPointerInput.
Ejemplo
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 (interfaz)
Interfaz para la comunicación de interoperabilidad entre el código de Unity y el código webView hospedado.
Para obtener más información sobre la interoperabilidad en WebView2, consulte Interoperabilidad de código nativo y del lado web.
public interface IWithPostMessage : IWebView
{
event WebView_OnPostMessage MessageReceived;
void PostMessage(string message, bool isJSON = false);
}
Delegados IWithPostMessage
public delegate void WebView_OnPostMessage(string message);
Eventos IWithPostMessage
Método IWithPostMessage.MessageReceived
Se desencadena cuando se recibe un nuevo mensaje de JavaScript desde el control WebView. Para obtener más información, consulte el evento CoreWebView2.WebMessageReceived subyacente.
Ejemplo
(webView as IWithPostMessage).MessageReceived += OnMessageReceived;
void OnMessageReceived(string message)
{
Debug.Log(message);
}
Métodos IWithPostMessage
Método IWithPostMessage.PostMessage
Envía un mensaje de JavaScript al contenido hospedado en el control WebView. Según el isJSON
parámetro , esto dará lugar a una llamada al método CoreWebView2.PostWebMessageAsString o al método CoreWebView2.PostWebMessageAsJson.
var msg = new MyMessage("updateText", "Updated from Unity!");
(webView as IWithPostMessage).PostMessage(JsonUtility.ToJson(msg), true);
IWithBrowserHistory (Interfaz)
Controla la funcionalidad relacionada con el historial del explorador, como navegar a una página anterior.
public interface IWithBrowserHistory : IWebView
{
event WebView_OnCanGoForwardUpdated CanGoForwardUpdated;
event WebView_OnCanGoBackUpdated CanGoBackUpdated;
void GoBack();
void GoForward();
}
Delegados IWithBrowserHistory
public delegate void WebView_OnCanGoBackUpdated(bool value);
public delegate void WebView_OnCloseRequested();
Eventos IWithBrowserHistory
Evento IWithBrowserHistory.CanGoForwardUpdated
Se desencadena cuando se produce la navegación. El delegado de eventos proporcionará un true
valor si CoreWebView2.CanGoForward (propiedad) es true
.
Ejemplo
(webView as IWithBrowserHistory).CanGoBackUpdated += OnCanGoBack;
void OnCanGoBack(bool value)
{
BackButton.enabled = value;
}
Evento IWithBrowserHistory.CanGoBackUpdated
Se desencadena cuando se produce la navegación. El delegado de eventos proporcionará un true
valor si la propiedad CoreWebView2.CanGoBack es true
.
Ejemplo
(webView as IWithBrowserHistory).CanGoForwardUpdated += OnCanGoForward;
void OnCanGoForward(bool value)
{
ForwardButton.enabled = value;
}
Métodos IWithBrowserHistory
Método IWithBrowserHistory.GoBack
Navega a la página anterior. Para obtener más información, consulte el método CoreWebView2.GoBack subyacente.
Ejemplo
(webView as IWithBrowserHistory).GoBack();
Método IWithBrowserHistory.GoForward
Navega a la página siguiente. Para obtener más información, consulte el método CoreWebView2.GoForward subyacente.
Ejemplo
(webView as IWithBrowserHistory).GoForward();