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()

また、これら 2 つのオプションを www/config.xml に追加しました。AutoHideSplashScreen は iOS アプリでは機能しますが、Android アプリには影響しないようです。過去数日間、この問題の解決策をインターネットで猛烈に検索したため、例から見つけたもう1つのオプション。

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

どんな助けでも素晴らしいでしょう。

前もって感謝します、

ケビン

4

3 に答える 3

2

スプラッシュ スクリーンの表示時間に非常に大きな数値を設定するだけです。たとえば、代わりに

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

行う:

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

Javascript/CSS/HTML が完全にロードされたときにまだタイムアウトが発生していないのに十分な大きさである限り、ここにどのような値を入力しても問題ありません。

于 2013-03-25T14:49:22.420 に答える
0

deviceready 後に呼び出しを行う必要があります

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

少なくともこれは私にとってはうまくいきます。皆さんにとってもうまくいくことを願っています。

于 2015-08-10T16:32:20.173 に答える