【问题标题】:Cordova splash screen - run code after splash is hiddenCordova 闪屏 - 隐藏闪屏后运行代码
【发布时间】:2015-04-30 10:54:40
【问题描述】:

我正在使用 Cordova 构建一个应用程序,并成功地使用以下方法在 Android 上设置了启动画面:

<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="5000" />

在我的 config.xml 中,这非常有效。初始屏幕显示指定的 5 秒持续时间,然后隐藏。

我已将应用设置为侦听“deviceready”事件,以便执行我的其余代码。同样,这工作正常。

问题是“设备就绪”似乎没有等待启动屏幕完成 - 我知道这可能是正常行为。有时,当我的应用程序的其余部分一直持续到 5 秒结束时,飞溅仍然可见。

所以我想知道的是;有没有办法在启动画面至少在定义的持续时间内完成显示后才执行代码?

也许引发了另一个 Cordova 事件?

** 旁注 - 我确实想让它尽可能跨平台,所以如果可能的话,我宁愿不为此进行 Android 特定的修复。 **

【问题讨论】:

    标签: cordova delay splash-screen


    【解决方案1】:

    您可以在需要时使用cordova API 关闭启动画面。

    对 XML 配置使用高价值:

    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="60000" />
    

    在你的 JS 中:

    document.addEventListener('deviceready', function () {
        navigator.splashscreen.hide();
    });
    

    【讨论】:

    • 我最终使用了这个解决方案,从上面@mharr 的回答中获得了一些灵感。我用很长的"SplashScreenDelay" 显示了此处所示的飞溅,然后在几秒钟的超时后使用navigator.splashscreen.hide(); 隐藏飞溅,以便飞溅始终可见至少那么长时间。 Cordova API 最好触发某种“splashdelayover”事件来监听,这样当两个设备都准备好并且启动完成时,您可以继续您的应用程序。否则,能够定义延迟对我来说似乎有点毫无意义。谢谢大家
    【解决方案2】:

    我的偏好是不依赖于启动屏幕是否存在。如果我希望我的图像显示为初始屏幕,并在其后面或依赖于它运行代码,我将我的初始屏幕图像作为我的 index.html 页面和该页面上的代码,然后跳转/重定向/加载“第一“我的代码想要的页面。然后我只使用纯色图像作为启动屏幕,时间最短,因为 Apple 仍然希望它在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 2015-09-29
      • 2021-07-05
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多