Глубинные ссылки — это URL-ссылки за пределами вашего приложения, которые направляют пользователей в определенное место в вашем приложении. Когда пользователь щелкает ссылку на приложение для приложения, операционная система открывает приложение Unity в указанном месте (например, в определенной сцене). Unity использует свойство Application.absoluteURL и событие Application.deepLinkActivated. для поддержки глубоких ссылок на следующих платформах:
- iOS
- Android
-
Universal Windows PlatformФункция IAP, которая поддерживает симулятор Microsoft In App Purchase, который позволяет тестировать потоки покупок IAP на устройствах перед публикацией приложения.. More info
See in Словарь (UWP) - macOS
Включение ссылок на контент
Прежде чем вы сможете обрабатывать ссылки на контент, вам нужно настроить приложение так, чтобы оно реагировало на них. Процесс настройки приложения для реагирования на определенные 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);
}
}
Тестирование глубоких ссылок
Чтобы протестировать ссылку на контент:
- Создайте HTML-файл, содержащий ссылку на контент для тестирования.
- Разместите его на локальном веб-сервере.
- Откройте его из веб-браузера на своем устройстве и нажмите на ссылку.
Пример файла HTML
Это пример файла HTML, который можно использовать для тестирования ссылок на контент. Чтобы перенаправить ссылку, измените атрибут href
в одном из элементов .
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
</head>
<body >
<h1>My Deep Link Test page
<p><a href="unitydl://mylink">Launch</a></p>
<p><a href="unitydl://mylink?parameter">Launch with Parameter</a></p>
</body>
</html>