本日はHoloLensのアプリ内でwebブラウザを立ち上げます。
HoloLensではアプリケーション内で、ウェブブラウザを立ち上げることができます。
これによってスマートフォンや一般的なWindowsPC同様、参考サイトに飛ばすことやショッピングページに飛ばすことなど様々なことができるようになりました。
例えば、[HoloGuiter]というジャムセッション練習用のアプリではアプリ内でYoutubeを開きユーザーのお気に入りの曲を流しながらギターの練習を行うことができます。
今回はこの仕組みをアプリ内に組み込んでいきます。
〇Webブラウザを組みこむ。
Webブラウザをアプリ内で立ち上げるサンプルは[MixedRealityToolkit.Examples]の[HandInteractionExamples]シーンで提供されています。
シーン内の向かって右側に存在するボタンを押すことでブラウザが立ち上がります。
このボタンの[Interactable]コンポーネントを見ていきます。
この[OnClick()]のイベントには[LaunchUri]コンポーネントの[Launch]が呼び出されています。
また引数として[https://aka.ms/mrdocs]が指定されています。
これは次のリンクでMRTKのドキュメントになります。
[LaunchUri]コンポーネントは次のようになっています。
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using UnityEngine; namespace Microsoft.MixedReality.Toolkit.Examples.Demos { [AddComponentMenu("Scripts/MRTK/Examples/LaunchUri")] public class LaunchUri : MonoBehaviour { /// <summary> /// Launch a UWP slate app. In most cases, your experience can continue running while the /// launched app renders on top. /// </summary> /// <param name="uri">Url of the web page or app to launch. See https://docs.microsoft.com/windows/uwp/launch-resume/launch-default-app /// for more information about the protocols that can be used when launching apps.</param> public void Launch(string uri) { Debug.Log($"LaunchUri: Launching {uri}"); #if UNITY_WSA UnityEngine.WSA.Launcher.LaunchUri(uri, false); #else Application.OpenURL(uri); #endif } } }
Unityエディタ上とアプリ上でプリプロセッサによって挙動が変えられています。
Hololensでは次の処理が行われます。
Application.OpenURL(uri);
Application.OpenURLメソッドはUnityで提供されているAPIで指定されたURLを開きます。
この時にプラットフォームごとの環境や許可に従い開くためHoloLensではEdgeのウィンドウが開くようです。
実記ではうまく動かなかったので後日取り組みます。