Я использую приложение create-react-app для разработки PWA. Экран-заставка по умолчанию, предоставляемый приложением, представляет собой значок (в середине экрана) и имя приложения под этим значком. Значок и имя должны быть указаны в файле манифеста.
Вопрос: Есть ли способ настроить заставку вместо стандартной?
Ниже приведено возможное решение, но мы ищем лучший способ сделать это.
Возможное решение:
В основном компоненте выполняйте рендеринг компонента SplashScreen до тех пор, пока сервер не вернет ответ API. Я использую состояние renderSplashscreen для рендеринга компонента SplashScreen.
// Component for Splash Screen
class SplashScreen extends React.Component {
render() {
const style = {top: 0,
bottom: 0,
right: 0,
left: 0,
position: 'fixed'};
return (
<img src = {'IMAGE-URL'} style = {style}/>
);
}
}
class MainComponent extends React.Component {
constructor(props) {
this.state = {
renderSplashscreen: true
};
}
apiCallback(data) {
// After getting the API response from server
this.setState({renderSplashscreen: false});
}
render() {
let view;
if (this.state.renderSplashscreen)
return <SplashScreen/>;
else
return <OtherComponent/>
}
}
@Mathias Спасибо за комментарий. Итак, приведенный выше возможное решение, кажется, пока единственный обходной путь.





Вот мой собственный возможное решение, добавленный в вопрос, на данный момент это единственное решение, которое хорошо работает.
В основном компоненте выполняйте рендеринг компонента SplashScreen до тех пор, пока сервер не вернет ответ API. Я использую состояние renderSplashscreen для рендеринга компонента SplashScreen.
// Component for Splash Screen
class SplashScreen extends React.Component {
render() {
const style = {top: 0,
bottom: 0,
right: 0,
left: 0,
position: 'fixed'};
return (
<img src = {'IMAGE-URL'} style = {style}/>
);
}
}
class MainComponent extends React.Component {
constructor(props) {
this.state = {
renderSplashscreen: true
};
}
apiCallback(data) {
// After getting the API response from server
this.setState({renderSplashscreen: false});
}
render() {
let view;
if (this.state.renderSplashscreen)
return <SplashScreen/>;
else
return <OtherComponent/>
}
}
Я считаю, что в настоящее время заставки PWA контролируются браузером, который вы используете. Я не видел ничего, что позволяло бы создавать свои собственные. Они просто используют те ценности, которые вы предоставляете.