1
import React from "react";
import AppLoading from "expo-app-loading";

export default function App() {
    return <AppLoading />;
}

上面的代码不应该向我显示启动画面吗?我得到的只是一个白屏。真的很感激知道我在这里做错了什么。我的资产文件夹中有 splash.png。

我的 app.json 文件:

{
  "expo": {
     ...
     "splash": {
       "image": "./assets/splash.png",
       "resizeMode": "contain",
       "backgroundColor": "#e2fcff"
     },
     ...
  }
}
4

2 回答 2

1

您显示的代码看起来不错。然而,还有更多。

我很不清楚什么实际上应该起作用而不是。对于运行自定义管理工作流的我来说,AppLoading 在我预构建 android/ios 并运行独立应用程序时起作用。当我在 Expo Go 应用程序中运行时,我只看到一个空白屏幕而不是启动屏幕。

人们已经讨论过 AppLoading 是否可以在裸工作流中工作,并且根据Expo 的 sdk应该。它也适用于我的预构建,因此支持裸工作流(在 Expo SDK 42 中)。

不过,我没有看到任何关于在 Expo Go 应用程序中显示启动画面的提及,因此无法判断是否支持。

然后是网络......再一次,不确定它是否应该工作 - 它不适合我。它在加载时显示一个空白页面。在字体指南中有一个使用 AppLoading 的 Expo 小吃,它在 Android 上显示一个启动屏幕,但在 Web 上只是一个空白页面。AppLoading 文档声称它支持网络。如果这意味着它不会崩溃,或者实际显示的初始屏幕图像是未知的。AppLoading 文档进一步声称它使用SplashScreen来显示启动屏幕,该屏幕没有网络支持。所以,我想网络上没有这样的启动画面(这不会让我感到惊讶,因为启动画面在网络上并不常见)。

就个人而言,我对独立应用程序的 Android/iOS 支持很好。我只使用 Expo Go 进行测试。此外,我将用于移动设备的启动画面无论如何在网络上都无法正常工作。我将展示的骨架看起来与 web 版本不同,所以我宁愿在 web 的自定义初始屏幕上实现。

AppLoading 支持总结:

  • 托管和裸工作流均受支持。
  • 它适用于独立应用程序。
  • 不确定它是否会在 Expo Go 应用程序中显示启动画面。
  • Web 似乎回退到显示空白页面。

如果我在某个地方错了,或者如果有人知道 AppLoading 在 Expo Go App 中是否有效,请填写我!

于 2021-09-22T18:39:25.600 回答
0

应用程序加载文档在文档中,它说您需要提供额外的arrugments

export default function App() {

  const [isLoading, setLoading] = useState(true);

  if (isLoading) {
   return(
    <AppLoading 
      startAsync={() => console.log('starting')}
      onFinish={() => { setTimeout(() => {setLoading(false)}, 1000) }}
      onError={(err) => {console.log(err)}}
    />
   )
  }

  return (
    <View style={styles.container}>
      <Text>Open up App.js to start working on your app!</Text>
    </View>
  );
}

于 2021-06-01T19:12:48.420 回答