ドキュメント

Unity Engine

Unity Engine

ディープリンク

Explains about enabling deep linking within your application and the platforms that support this feature.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前

ディープリンクとは、ウェブサイトではなくアプリケーション内の特定の場所にユーザーを遷移させるハイパーリンクです。ユーザーがディープリンクを選択すると、指定された場所 (例: Unity アプリケーションの特定のシーンなど) でアプリケーションが開きます。Unity は Application.absoluteURL プロパティと Application.deepLinkActivated イベントを使用してディープリンクをサポートします。

ディープリンクの有効化

ディープリンクを処理する前に、アプリケーションを、ディープリンクに反応するように設定する必要があります。特定の URL に反応するようにアプリケーションを設定するプロセスは、プラットフォームによって異なります。Unity は、以下のプラットフォームでディープリンクをサポートしています。
ディープリンクは、アプリケーションの現在の状態に応じて 2 つの方法で処理できます。
  • アプリケーションが実行されていない場合: デバイスがアプリケーションを開き、Application.absoluteURL にデバイスがアプリケーションに渡すディープリンク URL が格納されます。
  • アプリケーションが実行されている場合: デバイスがアプリケーションに URL を渡し、ディープリンク URL をパラメーターとして使用して Application.deepLinkActivated イベントを呼び出します。Application.absoluteURL が同時に更新されます。
どちらの場合も、Application.absoluteURL を使用して、アプリケーションで開くシーンを選択します。
以下のコードサンプルは、アプリケーションの現在の状態に応じてディープリンクを処理する方法を示しています。
using UnityEngine;using UnityEngine.SceneManagement;public class ProcessDeepLinkMngr : MonoBehaviour{ public static ProcessDeepLinkMngr Instance { get; private set; } public string deeplinkURL; private void Awake() { if (Instance == null) { Instance = this; Application.deepLinkActivated += onDeepLinkActivated; if (!string.IsNullOrEmpty(Application.absoluteURL)) { // Cold start and Application.absoluteURL not null so process Deep Link. onDeepLinkActivated(Application.absoluteURL); } // Initialize DeepLink Manager global variable. else deeplinkURL = "[none]"; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } } private void onDeepLinkActivated(string url) { // Update DeepLink Manager global variable, so URL can be accessed from anywhere. deeplinkURL = url; // Decode the URL to determine action. // In this example, the application expects a link formatted like this:// unitydl://mylink?scene1 string sceneName = url.Split('?')[1]; bool validScene; switch (sceneName) { case "scene1": validScene = true; break; case "scene2": validScene = true; break; default: validScene = false; break; } if (validScene) SceneManager.LoadScene(sceneName); }}
ディープリンクをテストするには、以下の手順に従います。
  1. テストするディープリンクを含む HTML ファイル を作成します。
  2. ローカルウェブサーバーで HTML ファイルをホストします。
  3. デバイスのウェブブラウザーから HTML ファイルを開き、ディープリンクをクリックします。

HTML ファイルの例

これは、ディープリンクをテストするために使用できる HTML ファイルの例です。リンクをリダイレクトするには、いずれか 1 つの
<a>
要素内の、
href
属性を変更してください。
<html> <head> <meta charset="utf-8"> </head> <body > <h1>My Deep Link Test page</h1> <p><a href="unitydl://mylink">Launch</a></p> <p><a href="unitydl://mylink?parameter">Launch with Parameter</a></p> </body></html>