#macos #unity3d #deep-linking #custom-url #custom-scheme-url
#macos #unity3d #глубокая привязка #пользовательский url #custom-scheme-url
Вопрос:
Я ищу способ запустить приложение OSX (автономное), созданное с помощью Unity, из браузера, используя пользовательскую схему URL.
После добавления пользовательской схемы URL-адресов в Info.plist я могу успешно запустить приложение.
И я хочу знать, как я могу получить аргументы, переданные в URL. (например, URLScheme://iwanttoreadthisdata).
Есть ли какой-нибудь способ сделать это?
Ответ №1:
Предполагая, что это сборка web GL, вы можете найти информацию здесь: https://answers.unity.com/questions/1285359/how-to-read-url-parameters-from-unity-webgl-build.html
Соответствующая информация ссылается на то, что это немного сложно, поскольку они используют библиотеку JS для выполнения в контексте браузера и извлечения данных в виде библиотеки Unity.
https://github.com/Bunny83/UnityWebExamples/blob/master/Mandelbrot/URLParameters.cs
Это позволяет просматривать обычные местоположения браузера, а c # обращается к / properties, чтобы заставить код js выполняться как библиотека Unity во время выполнения. Для JS-кода браузера URL-адрес window.location.href
И он анализирует данные из этой строки с помощью JS и возвращает объект dictionary в код Unity c #.
(Я понимаю, что ссылки на них могут приводить к ответам на внешний сайт, но код немного длинный и был бы излишним для копирования / вставки других хороших объяснений). Другие моды могут редактировать, если это неразумно.
Комментарии:
1. Большое спасибо за ваш ответ. Но платформа моего приложения — автономная Mac OSX, а не WebGL. Поэтому я не смог найти решения по этим ссылкам. Пожалуйста, дайте мне совет, если у вас есть какие-либо идеи.
2. Хм. Соответствует ли пользовательская схема URL той же идее, что macOS связывает обработчики с приложениями? Например: как iOS / android может попросить вас открыть URL-адрес с приложением. Я смутно помню это в macOS. Возможно, вам потребуется взглянуть на интерфейс, который предоставляет Unity. docs.unity3d.com/ScriptReference/Application.html На первый взгляд это кажется «абсолютным»? В противном случае я не уверен, отправляет ли Unity эти параметры операционной системой, если они не включены в поле url, о котором я упоминал.
3. Да, я хочу запустить свое приложение для macOS, например, как приложение для iOS и Android. Используя встроенные плагины (Objective-C или JAR), я реализую функции пользовательской схемы URL в мобильных приложениях. В случае моего автономного приложения для Windows я создаю reg-файл и считываю параметры схемы URL с помощью System.Environment. Метод GetCommandLineArgs(). К сожалению, «absoluteURL» не поддерживается macOS standalone, так нужны ли мне встроенные плагины для macOS (.bundle), если реализовать функцию схемы URL для macOS?