MRが楽しい

MRやVRについて学習したことを書き残す

HoloLensでアプリ内からスクリプトで他の自作アプリを開く

本日は HoloLens2 の小ネタ枠です。
HoloLensでアプリ内からスクリプトで他の自作アプリを開く方法を記事にします。
f:id:bluebirdofoz:20210527225847j:plain

URIに応じたアプリの起動

UWPアプリではURIを用いて外部アプリを起動することができます。
更に予めスキームが登録された規定アプリは規定の URI スキームを利用することで起動することができます。

URI に応じた既定のアプリの起動
docs.microsoft.com

一方で既定の URI スキームが設定されていない自作アプリを起動する場合は、自作アプリにスキーム名を登録する必要があります。

URI のアクティブ化の処理
docs.microsoft.com

カスタムスキームの登録

今回は以下の記事で作成したユーザ名を取得するアプリにカスタムスキームの登録を行い、アプリからの起動を試してみます。
・HoloLens2でEnvironment.UserNameでのユーザ名の取得を試す
bluebirdofoz.hatenablog.com

カスタムスキームはパッケージマニフェストから追記します。
Unity ビルドで生成された VisualStudio のソリューションファイルを開きます。
f:id:bluebirdofoz:20210527225931j:plain

ソリューションファイルが開いたら package.appxmanifest を選択してマニフェストファイルを開きます。
f:id:bluebirdofoz:20210527225940j:plain

[宣言]タブを開き、[使用可能な宣言]のプルダウンから[プロトコル]を選択します。
f:id:bluebirdofoz:20210527225949j:plain

[追加]ボタンをクリックすると、マニフェストプロトコルの宣言が追加されます。
f:id:bluebirdofoz:20210527230032j:plain

[表示名]と[名前]に固有の名称を設定します。
[名前]に入力した文字がカスタムスキームとなります。以下の点に注意が必要です。
・全て英字の小文字で入力すること
・既存のスキーム名と重ならないこと

今回は[showtextskm]と命名しました。
f:id:bluebirdofoz:20210527230042j:plain

マニフェストファイルをテキストエディターで開くと[Protocol]セクションが追加されています。
この状態で HoloLens へのデプロイを行います。
f:id:bluebirdofoz:20210527230051j:plain

サンプルアプリ

実際に自作アプリを別のアプリ内から呼び出すスクリプトを作成してみます。
f:id:bluebirdofoz:20210527230108j:plainf:id:bluebirdofoz:20210527230108j:plain

アプリの呼び出しにボタンオブジェクトを利用するため、Unity プロジェクトに MRTK をインポートします。
MRTK のインポート手順は以下の記事などを参考にしてください
bluebirdofoz.hatenablog.com

先ほどのカスタムスキーム[showtextskm]のURIを指定して開く以下のサンプルスクリプトを作成しました。
・MyAppLauncher.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.WSA;

public class MyAppLauncher : MonoBehaviour
{
    public void LaunchMyApp()
    {
        // 自作アプリのスキーム名を指定すると対象アプリが呼び出される
        var uri = @"showtextskm:";

        // URI を指定して起動する
        // bool 値の指定により URI が安全でない可能性の警告を表示します
        Launcher.LaunchUri(uri, true);
    }
}

f:id:bluebirdofoz:20210527230130j:plain

スクリプトを適当なゲームオブジェクトに設定します。
f:id:bluebirdofoz:20210527230140j:plain

スクリプトの関数を呼び出すボタンイベントを設定してシーンの作成は完了です。
f:id:bluebirdofoz:20210527230159j:plain

HoloLens2での動作確認

HoloLens2 にインストールして動作を確認します。
アプリケーションの HoloLens2 へのインストール手順は以下を参照ください。
bluebirdofoz.hatenablog.com

アプリが起動したらボタンをタップします。
f:id:bluebirdofoz:20210527230219j:plain

指定の自作アプリが起動すれば成功です
f:id:bluebirdofoz:20210527230352j:plain