Version: 6000.3
语言: 中文
在其他应用程序中使用 Unity 作为库
Xcode 帧调试器 Unity 集成

深度链接

深度链接是将用户带到应用程序内特定位置而不是网站的超链接。当用户选择深度链接时,应用程序会在指定位置打开,例如特定位置场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分批设计和构建游戏。更多信息
请参阅术语表
在 Unity 应用程序中。Unity 使用 Application.absoluteURL 属性和 Application.deepLinkActivated 事件来支持深度链接。

启用深度链接

在处理深度链接之前,您需要配置应用程序以对它们做出反应。将应用程序配置为对特定 URL 做出反应的过程是特定于平台的。

Unity 支持以下平台的深度链接:

注意:在 Web 平台上,深度链接是常规的http:https:Web URL,并且不依赖于应用程序处理程序协议unitydl:.

使用深层链接

处理深度链接的方法有两种,具体取决于应用程序的当前状态:

在这两种情况下,请使用 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. 在本地 Web 服务器上托管 HTML 文件。
  3. 从设备上的 Web 浏览器打开 HTML 文件,然后单击深层链接。

示例 HTML 文件

这是一个示例 HTML 文件,可用于测试深度链接。要重定向链接,请将href属性<a>元素。

<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>
在其他应用程序中使用 Unity 作为库
Xcode 帧调试器 Unity 集成