2016-03-08 5 views
2

Im в настоящее время разрабатывает приложение единства для платформ android и ios. Я реализовал глубокие ссылки на платформах отдельно, используя собственное кодирование. Проблема, с которой я столкнулся сейчас, - это глубокая привязка, которая отлично работает как на устройствах Android, так и на ios, если приложение впервые запускает свою деятельность, не возобновляя ее из недавней истории. Если приложение было сведено к минимуму, а затем, если на веб-странице была нажата глубокая ссылка, приложение просто возобновляет, но не передает данные глубокой ссылки. Я знаю, что это потому, что я назвал методы глубокой привязки в методе void Start(). Я попытался получить логические значения для проверки данных из активности и перезагрузки части глубокой ссылки в методе void Update(). Но это не работает.Перезапустите приложение на резюме, используя единство в C#

Я пробовал Google в течение нескольких часов для решения. Осталось только перезапустить приложение, если оно было возобновлено, так что все будет работать с самого начала, и поэтому в нем будет работать глубокая привязка.

Я попытался добавить свойство «Приложение не работает в фоновом режиме» в файле info.plist для ios.It работал, но я не могу сделать это для Android.

Im использование единицы 5.3.1f1 на mac и функция void OnApplicationPausevoid OnApplicationFocus оба не работают на нем. Я вручную отлаживал код и не вызывал функцию.

Если бы кто-нибудь мог сообщить мне, есть ли метод в единстве или андроиде, где я могу добиться того, что я пытаюсь сделать, это будет действительно большая помощь. Спасибо

ответ

1

OnApplicationPause и OnApplicationFocus - лучший и рекомендуемый способ для этого. OnApplicationPause и OnApplicationFocus не звонят на Android, потому что у вас, вероятно, есть Application.runInBackground в ваших некоторых ваших сценариях. Удалить если у вас их есть.

Кроме того, для OnApplicationPause и OnApplicationFocus для вызова, вы должны наследовать от MonoBehavior. Ваш сценарий должен выглядеть следующим образом:

public class ExampleClass : MonoBehaviour { 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

Вместо:

public class ExampleClass : OTHERCLASS{ 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

ИЛИ:

public class ExampleClass { 

    void OnApplicationPause(bool pauseStatus) { 

    } 

    void OnApplicationFocus(bool focusStatus) { 

    } 
} 

Если это не решит проблему, то это, скорее всего, ошибка. Обновить единство от 5.3.1f1 до 5.3.3 как последняя версия и может решить вашу проблему.

+1

Кроме того, если включена функция виртуальной реальности, она перезапишет прогон в фоновом режиме, поэтому вам нужно будет убедиться, что она выключена. – Everts

 Смежные вопросы

  • Нет связанных вопросов^_^