3

我们正在使用 PhoneGap/Cordova 2.4。我们在关闭 Android 端启动画面的自动隐藏时遇到了问题。我的期望是,在显式调用 navigator.splashscreen.hide() 之前,不会隐藏启动画面。然而,对于我们的应用程序,启动画面被隐藏得更快。这向用户展示了一个尚未准备好与之交互的 HTML 页面。

根据 Cordova 文档,我们已将 Java 代码更新为如下所示

import android.os.Bundle;
import org.apache.cordova.*;

public class MyApp extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.setIntegerProperty("splashscreen", R.drawable.splash);
        super.loadUrl(Config.getStartUrl(), 5000);
    }
}

在这段 Javascript 代码中,我们在 setup 方法的末尾有这个。但是,正如我所提到的,启动画面被隐藏得更早了。另外,当我们去掉这条线时,闪屏仍然是隐藏的。这是代码:

   // tons of setup code ...
    Backbone.history.start()
    Backbone.trigger('app:ready')

    navigator.splashscreen.hide()

我们还将这两个选项添加到 www/config.xml。我应该注意到 AutoHideSplashScreen 适用于 iOs 应用程序,但似乎对 android 应用程序没有影响。我从一个例子中找到了另一个选项,因为过去几天我一直在互联网上疯狂地搜索这个问题的解决方案。

<preference name="AutoHideSplashScreen" value="false" />
<preference name="auto-hide-splash-screen" value="false" />

任何帮助都会很棒。

提前致谢,

凯文

4

3 回答 3

2

你可以添加

<preference name="SplashScreenDelay" value="100000" />

到您的 config.xml 然后稍后只需按照您需要的方式以编程方式将其删除。

于 2015-01-08T16:37:36.977 回答
2

只需为启动画面显示时间设置一个非常大的数字。例如,而不是

super.loadUrl(Config.getStartUrl(), 5000);

做:

super.loadUrl(Config.getStartUrl(), 60000); // 60 seconds

你在这里放什么值并不重要,只要它足够大,当你的 Javascript/CSS/HTML 完全加载时,还没有发生超时。

于 2013-03-25T14:49:22.420 回答
0

必须在设备就绪后进行调用

.run(function($ionicPlatform, $cordovaSplashscreen) {
    $ionicPlatform.ready(function() {
        $cordovaSplashscreen.hide();
    })
});

至少这对我有用。希望它也适用于你们。

于 2015-08-10T16:32:20.173 回答