Mixed Reality WebView プラグインの API リファレンス (プレビュー)
Unity 用 Microsoft Mixed Reality WebView プラグインを使用すると、WebView2 機能を HoloLens 2 アプリに統合できます。 Unity 用のこの WebView プラグインを使用すると、WebView2 コントロールをラップし、レンダリングを自動的に処理し、入力を WebView2 コントロールに自動的に送ることで、WebView2 機能を HoloLens 2 アプリに簡単に統合できます。
また、このプラグインは Unity と WebView2 の間の相互運用を管理し、メッセージとイベントを介した JavaScript と Unity 間の通信を可能にします。
このプラグインは、 CoreWebView2 を介して使用できる機能のサブセットを公開します。
HoloLens 2の WebView2 と Unity 用 WebView プラグインはどちらもプレビュー段階であり、一般提供前に変更される可能性があります。 WebView2 プレビューは、Microsoft HoloLensの Insider プレビューで利用できます。 このプレビューにアクセスするには、Windows Insider プログラムに登録されている必要があります。Microsoft HoloLensについては、「Insider プレビューで Insider ビルドの受信を開始する」を参照してください。
WebView2 と WebView プラグインは、Windows 11更新プログラムを実行HoloLens 2デバイスでのみサポートされます。 詳細については、「update 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
オブジェクト。 Readonly
IWebView.Width プロパティ
WebView テクスチャと WebView コントロールの幅。 Unity シーン内のインスタンスの IWebView
レンダリングされたディメンションは、 によって制御されることに注意してください GameObject
。
IWebView.Height プロパティ
WebView テクスチャと WebView コントロールの高さ。 Unity シーン内のインスタンスの IWebView
レンダリングされたディメンションは、 によって制御されることに注意してください GameObject
。
IWebView.Page プロパティ
現在読み込まれている、または WebView コントロールによって移動されている URI。 Readonly
IWebView.OnceCreated プロパティ
タスクは、WebView コントロールが完全にインスタンス化され、使用できる状態になったときに実行されます。 Readonly
例
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 メソッド
イベントを WebViewMouseEventData
WebView コントロールに伝達します。 内部ロジックに応じて、イベントは 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 コード間の相互運用通信のためのインターフェイス。
WebView2 での相互運用の詳細については、「 ネイティブ側コードと Web 側コードの相互運用」を参照してください。
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 メッセージを送信します。 パラメーターに応じて、CoreWebView2.PostWebMessageAsString メソッドまたは CoreWebView2.PostWebMessageAsJson メソッドを呼び出します。isJSON
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();