コルドバアプリから少し離れていましたが、昨日新しいクローンを作成したところ、「死の白い画面」の症状があることに気付きました-スプラッシュ画面が表示され、プログラムが読み込まれ...空白の画面を取得します。いくつかの詳細:
<splash>
my config.xml file の要素。Cordova/PhoneGapは最近、これを引き起こしているかもしれない何かをしましたか?これを分離する方法についてのアイデアはありますか?私は本当に困惑しています。
まあそれはいです。 was例外がスローされていることが判明しました。ブラウザー開発ツールがそれを拾うには早すぎただけです(iOSの場合Chrome Android)それぞれ、ブラウザのターゲット(cordova platform add browser
など)。そのため、ブラウザプラットフォームは、私が推測するものに対して有用です。 :-)
私の場合、cordova-sqlite-storageプラグインは、すべてを更新したときにコードを壊す破壊的なAPIの変更を行っていました。解決策は、config.xmlファイルでプラグインを以前のバージョンに固定することでした。
だから、学んだ教訓:
spec
パラメーターを使用して、プラグインを特定のバージョンに固定します。これにより、将来の心痛が軽減されます。Config.xmlに戻り、他のアイテムを固定し、上記のようにクリーンアップを行います。みんな、ありがとう。
私はあなたのアプリを実行するように仕向けました。これは私が従った手順です。
1)まず、config.xmlでスプラッシュスクリーンプラグインの場所とともにスプラッシュスクリーンの設定を宣言する必要があります。これはあなたが行方不明だと思うものです
<preference
name="SplashScreen"
value="screen" />
<preference
name="AutoHideSplashScreen"
value="true" />
<preference
name="SplashScreenDelay"
value="5000" />
<feature name="SplashScreen" >
<param
name="Android-package"
value="org.Apache.cordova.splashscreen.SplashScreen" />
<param
name="onload"
value="true" />
</feature>
2)スプラッシュスクリーンのイメージをconfig.xmlで宣言します。これは既に完了しています。
プロジェクトの構造を簡素化するため、screen/Androidフォルダーではなく、Android project(ldpi、mdpi、hdpi、xhdpiなど)のデフォルト密度フォルダーに画像を保持することをお勧めします。
<!-- you can use any density that exists in the Android project -->
<splash
density="land-hdpi"
src="res/drawable-land-hdpi/splash.png" />
<splash
density="land-ldpi"
src="res/drawable-land-ldpi/splash.png" />
<splash
density="land-mdpi"
src="res/drawable-land-mdpi/splash.png" />
<splash
density="land-xhdpi"
src="res/drawable-land-xhdpi/splash.png" />
<splash
density="port-hdpi"
src="res/drawable-hdpi/splash.png" />
<splash
density="port-ldpi"
src="res/drawable-ldpi/splash.png" />
<splash
density="port-mdpi"
src="res/drawable-mdpi/splash.png" />
<splash
density="port-xhdpi"
src="res/drawable-xhdpi/splash.png" />
</platform>
3) スプラッシュスクリーンプラグインクラス をAndroid下のプロジェクト構造org.Apache.cordova.splashscreenに追加またはスプラッシュスクリーンCordovaプラグインをインストールする
https://cordova.Apache.org/docs/en/3.1.0/cordova/splashscreen/splashscreen.html
4)最後の最も重要なステップは、wwwフォルダーにcordova.jsが必要です
そしてその後、私はあなたのウェブアプリを実行することができました
私はAndroid開発者です
Ember.jsでcordovaを使用しているときに、同様の問題が発生しました。それは私のアプリケーションのURL変更戦略についてでした。
この回答 をご覧ください。問題に関連している可能性があります。
splash-screen
にスプラッシュを追加する場合、またはconfig.xml
プラグインなしで適切に動作するには、iOSとAndroidの両方にsplash-screen
プラグインをインストールする必要がありますHTMLでスプラッシュスクリーンを作成し、コンテンツとログインの2つの部分に分けて、コンテンツスタイルの表示を設定します:なし。表示:ブロックまたはあなたが望むもの
また、config.xml
の設定の下にありません
<preference name="SplashScreenDelay" value="3000" />
<preference name="SplashMaintainAspectRatio" value="true|false" />
<preference name="SplashShowOnlyFirstTime" value="true|false" />
この設定をconfig.xmlに追加してみてください。おそらくこれが問題です
<preference name="AutoHideSplashScreen" value="true"/>
私のために働いた唯一の修正はここにありました: http://www.codingandclimbing.co.uk/blog/ionic-2-fix-splash-screen-white-screen-issue-14
基本的にconfig.xmlファイルを編集します。スプラッシュスクリーンのセットアップは次のようになります。
<preference name="ShowSplashScreen" value="true"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="30000"/>
<preference name="AutoHideSplashScreen" value="false"/>
<preference name="SplashShowOnlyFirstTime" value="false"/>
<preference name="FadeSplashScreen" value="false"/>
<feature name="SplashScreen">
<param name="Android-package" value="org.Apache.cordova.splashscreen.SplashScreen"/>
</feature>
私の場合、head
に<meta http-equiv="Content-Security-Policy">
タグがないと、白い画面が表示されました。
これらの行をconfig.xmlに追加しました
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="6000" />
また、screendelayを3000として指定すると黒い画面が表示されるので、6000に変更しました。js、css、および画像ファイルのロードに時間がかかると思います。
私の場合、最初の画面がまだマウントされる前にALERTを置きます。
私の問題はES6にあり、iPhoneで完全に動作し、Android 6ですが、Android 4および5では動作しません。
私はこのような状況にあり、それを解決しました。
私の場合、このコードに似たものでした:
$scope.images.Push({ id: i, src: "http://placehold.it/50x50" , pstb, trno});
上記のコードはAndroid 7.0で正常に動作しますが、スプラッシュ後の白い画面のみAndroid 4.4.4
これに変更:
$scope.images.Push({ id: i, src: "http://placehold.it/50x50", pstb: pstb, trno: trno});
すべてのデバイス(少なくともすべてのデバイス)で実行する
私の場合、誤ってapp.jsの状態定義にコメントしました。
1 >>起動時に例外がスローされると思われる場合は、ブラウザプラットフォームを使用して追跡できます。 2 >> config.xmlのspecパラメーターを使用して、プラグインを特定のバージョンにピン留めします。これにより、将来の心痛が軽減されます。