如何使用本机博览会在启动画面上播放介绍动画?

时间:2017-11-26 21:55:16

标签: react-native expo

目前,如果我向app.json添加.gif文件,则无效

"splash": {
   "image": "./assets/splash.gif"
}

编辑:看起来,他们正在处理它,在这里:(https://expo.canny.io/feature-requests/p/improved-splash-screen-api)。

4 个答案:

答案 0 :(得分:5)

如果您正在谈论启动屏幕并且未使用create-react-native-app,则每个平台必须edit the native launch screen才能使用您的动画。

如果您在世博会上使用create-react-native-app,那么您可以查看Splash Screen API

答案 1 :(得分:5)

我看到你正在尝试使用gif作为启动画面。好吧,我有一个坏消息。原生平台(iOS和Android)的启动画面API不支持gif,实际上它们只支持'png'图像。

但是,好消息是有一个解决方法。

我们在项目中有类似的要求,因此我们创建了自定义AppLoading (Provided by Expo)组件,其中包含我们的gif图像,在后台它的工作方式类似于AppLoading,即获取数据和缓存。我们使用静态png图像作为默认的启动画面,静态图像到gif之间的转换为我们工作。

这是最简单的方法,但有一个缺点,即在静态启动画面和动画之间,可以在短时间内看到白色屏幕。 这是因为您的javascript包正在后台下载,直到除非您的整个JS没有加载,否则您将看到白屏。

  • 要解决此问题,您需要分离您的expo应用程序,因为我们将进行一些原生更改。
  • 安装并按照此module中的说明操作。 这个模块的好处是它暴露了javascript中的“隐藏”功能。

App的基本流程。

  • App loading start =>静态闪屏可见
  • 屏幕可见,直到我们的javascript包未加载
  • 捆绑负载=>由SplashScreen组件的ComponentDidMount上的模块公开的调用隐藏功能
  • 静态启动画面隐藏=>通过后台任务工作(缓存和API调用)可以看到动画启动画面
  • 进一步的App Flow

答案 2 :(得分:2)

自版本29起的博览会支持动画SVG和GIF。它还提供了一个API,可以在没有AppLoading的情况下生成您自己的启动屏幕。

请检查:https://docs.expo.io/versions/v29.0.0/sdk/splash-screen#example-without-apploading

答案 3 :(得分:1)

世博团队已完成:“改进的Splash Screen API”门票。现在,您可以按照文档中的说明进行操作:docs.expo.io

相关问题