版本:Unity 6 (6000.0)
语言:英语
在其他应用程序中使用 Unity 作为库
Xcode 帧调试器 Unity 集成

深度链接

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

启用深度链接

在处理深度链接之前,您需要配置应用程序以对其做出反应。配置应用程序以对特定 URL 做出反应的过程是特定于平台的。Unity 支持以下平台的深度链接:

使用深度链接

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

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

示例 HTML 文件

这是一个您可以用来测试深度链接的示例 HTML 文件。要重定向链接,请更改其中一个 <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>
在其他应用程序中使用 Unity 作为库
Xcode 帧调试器 Unity 集成