Отображение заставки в PhoneGap / Cordova 1.5.0 - PullRequest
2 голосов
/ 02 апреля 2012

Я пытаюсь отобразить заставку для своего приложения iOS для PhoneGap / Cordova.Значение по умолчанию или логическое значение для этого поведения - «ДА».Я пытаюсь заставить экран показывать в течение 2 секунд.На данный момент, он показывает только на долю секунды, а затем идет прямо в приложение.Поскольку мое приложение не загружает данные для Интернета при запуске, оно загружается довольно быстро.

Согласно этому совету, это решение работает для некоторых.Я использую последнюю сборку Cordova 1.5.0: http://shazronatadobe.wordpress.com/2011/09/15/ios-phonegap-splash-screen-control/

Я установил AutoHideSplashScreen на «НЕТ» в Cordova.plist и использую этот код:

    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    setTimeout(function() {
               navigator.splashscreen.hide();
               }, 2000);

Я пытался поместить функцию setTimeout в функцию, но безрезультатно.Примерно так:

    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }
    function hideSplash() {
        setTimeout(function() {
                   navigator.splashscreen.hide();
                   }, 2000);

    }

И затем загрузка метода hideSplash () при загрузке тела.Но безрезультатно.

Что-то не так с моим кодом?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

ОК, я воспользовался советом RespectTheCode и удалил событие готовности устройства из функции onLoad. Это рабочий код. Я ставлю полный код для тех, кто изучает:

<script>
   document.addEventListener("deviceready", onDeviceReady, false);

    setTimeout(function() {
    navigator.splashscreen.hide();
   }, 1000);
</script>

1000 - это одна секунда для тех, кто не знает. Не будет работать менее одной секунды, т.е. 500. Заставка просто зависает.

Это работает для меня, когда я устанавливаю и приложение работает нормально, однако, когда я перезагружаю устройство (iPad2), заставка зависает, как предыдущая проблема (выше параграф), и не будет входить в приложение. Странная ошибка.

Кто-нибудь еще испытал это?

Я на сборке iOS 5.1 с Xcode 4.3.1 и Cordova 1.5.0

0 голосов
/ 28 ноября 2012

Я использую Cordova 2.1.0, а сейчас 2.2.0. При вызове navigator.splashscreen.hide () заставка не исчезла. Используя следующий код, все заработало:

    private static native void hideSplashScreen() /*-{
    $wnd.Cordova.exec(null, null, "SplashScreen", "hide", []);
}-*/;

Надеюсь, это поможет

...