Как сделать экран запуска/заставки для Android в React-Native?

Я искал какое-то время и ничего не нашел о том, как добавить экран запуска/заставки в мое приложение для Android с помощью react-native.

Я видел много примеров того, как это сделать для iOS, но мне также нужно, чтобы это работало с Android. Мне бы хотелось что-то, что может работать кросс-платформенно, но если это невозможно с текущим реагированием, я могу реализовать это для обоих. Я также видел способ сделать это с помощью java, но я бы предпочел не портить свое приложение кодом java, стараясь сохранить как можно больше, написанное в реакции.

Кто-нибудь знает, как это можно сделать?


person Ryan Wilson    schedule 11.02.2016    source источник


Ответы (1)


Экраны-заставки – это встроенная функция приложений для iOS. Вы не можете не иметь экран-заставку на iOS.

Однако, как правило, в приложениях для Android их нет. Приложения, которые, как правило, имитируют это, имея изображение, которое отображается в течение нескольких секунд при первом запуске.

Это довольно легко сделать в среде реагирования (используйте setTimeout с setState({showSplashScreen:false}) или подобным. Оберните его в чек для Android, и все готово.

РЕДАКТИРОВАТЬ: Как указывает ОП в комментариях, это вызывает «белую вспышку» во время загрузки приложения, поэтому на данный момент кажется, что лучшим решением является использование плагина или пользовательского кода Java.

person Ben Clayton    schedule 11.02.2016
comment
Спасибо за вклад, но всякий раз, когда я это делаю, на долю секунды отображается белый экран, а затем изображение. Я знаю, что должен быть способ сделать это правильно, потому что я видел это во многих приложениях. Например, приложение Weather Underground не показывает ничего белого, как только вы щелкаете по нему, вы видите изображение, также с Shazam и многими другими, которые я видел. Однако я заметил, что приложения Facebook и Instagram (я предполагаю, что они используют реагирующий натив, так как Facebook написал его) на мгновение показывают белый цвет, а затем загружаются. Так что это может быть проблемой или чем-то еще с реакцией. - person Ryan Wilson; 11.02.2016
comment
Ах. Хорошая мысль о «белой вспышке» - скорее всего, из-за реакции на асинхронный рендеринг нативного. В этом случае вам, скорее всего, лучше всего использовать плагин только для Android или «испортить» ваш код с помощью Java. - person Ben Clayton; 11.02.2016
comment
Кстати, Facebook еще не использует React-Native для основного приложения Facebook. Я полагаю, что другие упомянутые вами приложения также написаны на Java с помощью Android SDK. - person Ben Clayton; 11.02.2016
comment
А, хорошо знать. Я много думал об этом, я стараюсь, чтобы он был как можно более реагирующим, но из всего, что я видел, похоже, что мне может понадобиться немного java, если я хочу этот экран-заставку. Я ценю помощь, хотя. - person Ryan Wilson; 11.02.2016
comment
В приложении Facebook F8 используется заставка для iOS и нет для Android. В iOS за заставкой следует пустой белый экран на мгновение, прежде чем перейти к главному экрану. На Android при запуске перед главным экраном появляется пустой белый экран. Я реализовал экран-заставку в своем приложении для Android, и я получаю аналогичное поведение экрана-заставки => белый экран => главный экран... поэтому мне интересно, является ли этот белый экран не экраном это отображается моим приложением, которым я могу управлять. - person Ryan H.; 08.07.2016