Unity3d:深度链接

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

深度链接

深层链接是应用程序外部的 URL 链接,可将用户定向到应用程序中的某个位置。当用户单击应用程序的深层链接时,操作系统会在指定位置(例如,特定场景)打开 Unity 应用程序。Unity 使用 Application.absoluteURL 属性和 Application.deepLinkActivated 事件来支持以下平台上的深层链接:

  • 苹果
  • 人造人
  • 通用 Windows 平台 (UWP)
  • 苹果操作系统

启用深度链接

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

  • 苹果
  • 人造人
  • 通用视窗平台
  • 苹果操作系统

使用深层链接

要处理深层链接,您可以:

  • 在应用程序启动时检查 Application.absoluteURL。
  • 在应用程序运行时订阅 Application.deepLinkActivated 事件。当设备从深层链接 URL 打开应用程序时,Unity 会引发 Application.deepLinkActivated 事件。

以下代码示例演示如何处理深层 URL 并根据 URL 加载场景。

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 app expects a link formatted like this:
// unitydl://mylink?scene1
        string sceneName = url.Split("?"[0])[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 服务器上。
  3. 从设备上的 Web 浏览器访问它,然后单击链接。

示例 HTML 文件

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

<html>
    <head>
       <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    </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>

3D建模学习工作室整理翻译,转载请标明出处!

上一篇:Unity3d:Asset Store Publisher 门户 (mvrlink.com)

下一篇:Unity3d:Xcode 帧调试器 Unity 集成 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号