Important
WebView2는 계속 사용할 수 있습니다. 그러나 HoloLens의 WebView2에 대한 지원은 중단(버그 수정, 콘텐츠 업데이트 또는 기술 지원 없음)되므로 애플리케이션이 장기간 계속 작동하도록 보장할 수 없습니다.
Unity용 Microsoft Mixed Reality WebView 플러그 인을 사용하면 WebView2 기능을 HoloLens 2 앱에 통합할 수 있습니다. 이 Unity용 WebView 플러그 인은 WebView2 컨트롤을 래핑하고, 렌더링을 자동으로 처리하고, WebView2 컨트롤에 입력을 자동으로 전달하여 WebView2 기능의 HoloLens 2 앱 통합을 간소화합니다.
또한 이 플러그 인은 Unity와 WebView2 간의 interop를 관리하여 메시지와 이벤트를 통해 JavaScript와 Unity 간의 통신을 가능하게 합니다.
이 플러그 인은 CoreWebView2를 통해 사용할 수 있는 기능의 하위 집합을 노출합니다.
HoloLens 2의 WebView2 및 Unity용 WebView 플러그 인은 모두 미리 보기로 제공되며 일반 공급 전에 변경될 수 있습니다. WebView2 미리 보기는 Microsoft HoloLens용 Insider Preview에서 사용할 수 있습니다. 이 미리 보기에 액세스하려면 Windows 참가자 프로그램에 등록해야 합니다. Microsoft HoloLens의 Insider Preview에서 참가자 빌드 수신 시작을 참조하세요.
WebView2 및 WebView 플러그 인은 Windows 11 업데이트를 실행하는 HoloLens 2 디바이스에서만 지원됩니다. 자세한 내용은 HoloLens 2 업데이트를 참조 하세요.
Unity용 WebView 플러그 인을 시작하는 방법에 대한 자세한 내용은 HoloLens 2 Unity 앱에서 WebView2 시작하기를 참조 하세요.
IWebView 인터페이스
Unity용 WebView 플러그 인의 기본 인터페이스입니다.
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();
}
IWebView 대리자
public delegate void WebView_OnNavigated(string path);
public delegate void WebView_OnCanGoForwardUpdated(bool value);
IWebView 이벤트
IWebView.Navigated 이벤트
CoreWebView2.SourceChanged 이벤트가 WebView에 의해 발생할 때 트리거되는 이벤트 입니다.
예시
webView.Navigated += OnNavigated;
private void OnNavigated(string uri)
{
UrlField.text = uri;
}
IWebView.WindowCloseRequested 이벤트
CoreWebView2.WindowCloseRequested 이벤트가 WebView에 의해 발생할 때 트리거되는 이벤트 입니다.
예시
webView.WindowCloseRequested += OnWindowCloseRequested;
private void OnWindowCloseRequested()
{
Destroy(GameObject);
}
IWebView 속성
IWebView.GameObject 속성
장면의 WebView 플러그 인을 나타내는 최상위 Unity GameObject 엔터티입니다. 읽기 전용입니다.
IWebView.Texture 속성
WebView 콘텐츠가 렌더링되는 2D Unity Texture2D 개체입니다. 읽기 전용
IWebView.Width 속성
WebView 텍스처 및 WebView 컨트롤의 너비입니다. Unity 장면에서 인스턴스의 IWebView 렌더링된 차원은 에 의해 GameObject제어됩니다.
IWebView.Height 속성
WebView 텍스처 및 WebView 컨트롤의 높이입니다. Unity 장면에서 인스턴스의 IWebView 렌더링된 차원은 에 의해 GameObject제어됩니다.
IWebView.Page 속성
현재 로드되거나 WebView 컨트롤에서 탐색 중인 URI입니다. 읽기 전용
IWebView.OnceCreated 속성
WebView 컨트롤이 완전히 인스턴스화되고 사용할 준비가 되면 작업이 실행됩니다. 읽기 전용
예시
webView.OnceCreated.ContinueWith((task) => {
// Finish setting up plugin.
webview.Navigated += OnNavigated;
webview.WindowCloseRequested += OnWindowCloseRequested;
Load(initialURL);
}, TaskScheduler.FromCurrentSynchronizationContext());
IWebView 메서드
IWebView.Resize 메서드
WebView2 컨트롤의 크기와 을 변경합니다 Texture. 자세한 내용은 기본 CoreWebView2Controller.Bounds 속성을 참조하세요.
Unity 장면에서 인스턴스의 IWebView 렌더링된 차원은 에 의해 GameObject제어됩니다.
예시
Resize(600, 400);
IWebView.Load 메서드
지정한 URI로 이동합니다. 자세한 내용은 기본 CoreWebView2.Navigate 메서드를 참조하세요.
예시
Load(new Uri("https://www.microsoft.com"));
IWebView.Dispose 메서드
인스턴스와 관련된 메모리, 핸들 및 콜백과 같은 리소스를 IWebView 지웁니다.
내부 메모리가 제대로 해제되도록 특정 IWebView 인스턴스로 완료되면 이 메서드를 호출합니다. 호출된 후에 Dispose 는 인스턴스가 IWebView 잘못된 것으로 간주되어야 합니다.
예시
void OnDestroy()
{
webView.Dispose();
}
IWithMouseEvents 인터페이스
Unity용 WebView 플러그 인에 대한 마우스 및 포인터 입력을 지원합니다.
public interface IWithMouseEvents
{
void MouseEvent(WebViewMouseEventData mouseEvent);
}
IWithMouseEvents 메서드
IWithMouseEvents.MouseEvent 메서드
WebView 컨트롤에 이벤트를 전파 WebViewMouseEventData 합니다. 내부 논리에 따라 이벤트는 CoreWebView2Controller.SendMouseInput 메서드 또는 CoreWebView2Controller.SendPointerInput 메서드를 호출합니다.
예시
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 인터페이스
Unity 코드와 호스트된 WebView 코드 간의 interop 통신을 위한 인터페이스입니다.
WebView2의 interop에 대한 자세한 내용은 네이티브 쪽 및 웹 쪽 코드의 Interop을 참조하세요.
public interface IWithPostMessage : IWebView
{
event WebView_OnPostMessage MessageReceived;
void PostMessage(string message, bool isJSON = false);
}
IWithPostMessage 대리자
public delegate void WebView_OnPostMessage(string message);
IWithPostMessage 이벤트
IWithPostMessage.MessageReceived 메서드
WebView 컨트롤에서 새 JavaScript 메시지를 받을 때 트리거됩니다. 자세한 내용은 기본 CoreWebView2.WebMessageReceived 이벤트를 참조하세요.
예시
(webView as IWithPostMessage).MessageReceived += OnMessageReceived;
void OnMessageReceived(string message)
{
Debug.Log(message);
}
IWithPostMessage 메서드
IWithPostMessage.PostMessage 메서드
WebView 컨트롤의 호스트된 콘텐츠에 JavaScript 메시지를 보냅니다. 매개 변수에 isJSON 따라 CoreWebView2.PostWebMessageAsString 메서드 또는 CoreWebView2.PostWebMessageAsJson 메서드를 호출하게 됩니다.
var msg = new MyMessage("updateText", "Updated from Unity!");
(webView as IWithPostMessage).PostMessage(JsonUtility.ToJson(msg), true);
IWithBrowserHistory 인터페이스
이전 페이지로 이동하는 등 브라우저 기록과 관련된 기능을 처리합니다.
public interface IWithBrowserHistory : IWebView
{
event WebView_OnCanGoForwardUpdated CanGoForwardUpdated;
event WebView_OnCanGoBackUpdated CanGoBackUpdated;
void GoBack();
void GoForward();
}
IWithBrowserHistory 대리자
public delegate void WebView_OnCanGoBackUpdated(bool value);
public delegate void WebView_OnCloseRequested();
IWithBrowserHistory 이벤트
IWithBrowserHistory.CanGoForwardUpdated 이벤트
탐색이 발생할 때 트리거됩니다. CoreWebView2.CanGoForward 속성이면 이벤트 대리자가 true값을 제공합니다true.
예시
(webView as IWithBrowserHistory).CanGoBackUpdated += OnCanGoBack;
void OnCanGoBack(bool value)
{
BackButton.enabled = value;
}
IWithBrowserHistory.CanGoBackUpdated 이벤트
탐색이 발생할 때 트리거됩니다. CoreWebView2.CanGoBack 속성이면 이벤트 대리자가 true값을 제공합니다true.
예시
(webView as IWithBrowserHistory).CanGoForwardUpdated += OnCanGoForward;
void OnCanGoForward(bool value)
{
ForwardButton.enabled = value;
}
IWithBrowserHistory 메서드
IWithBrowserHistory.GoBack 메서드
이전 페이지로 이동합니다. 자세한 내용은 기본 CoreWebView2.GoBack 메서드를 참조하세요.
예시
(webView as IWithBrowserHistory).GoBack();
IWithBrowserHistory.GoForward 메서드
다음 페이지로 이동합니다. 자세한 내용은 기본 CoreWebView2.GoForward 메서드를 참조하세요.
예제
(webView as IWithBrowserHistory).GoForward();