Black screen displayed after splash in iOS Cordova app


#1

Hello :slight_smile:

I built an Angular application for Android and iOS, with ionic. It is a Cordova application.

Android: everything is fine, the application works perfectly.

For the iOS part, I have only one bug: Once the splashscreen loaded, the application displays an empty black screen. If you rotate it from portrait mode to landscape mode, this is only where the application is displayed correctly.

I added the status bar and the splashscreen plugins to config.xml. I put full screen to Yes as you can see below:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.xxxxx.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>Myapp</name>
    <description>
        My App
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        My Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <icon src="www/img/icon.png" />
    <preference name="webviewbounce" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="16" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashScreenDelay" value="8000" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="ShowSplashScreenSpinner" value="false" />
    <feature name="StatusBar">
        <param name="ios-package" onload="true" value="CDVStatusBar" />
    </feature>
    <plugin name="cordova-plugin-console" spec="^1.0.5" />
    <plugin name="cordova-plugin-crosswalk-webview" spec="^2.3.0" />
    <plugin name="cordova-plugin-device" spec="1.1.4" />
    <plugin name="cordova-plugin-keyboard" spec="^1.1.5" />
    <plugin name="cordova-plugin-statusbar" spec="2.2.1" />
    <plugin name="ionic-plugin-keyboard" spec="~2.2.1" />
    <plugin name="cordova-plugin-whitelist" spec="1.3.1" />
    <preference name="Fullscreen" value="true" />
    <plugin name="cordova-plugin-splashscreen" spec="https://github.com/apache/cordova-plugin-splashscreen.git" />
    <engine name="android" spec="^6.2.3" />
    <engine name="ios" spec="^4.4.0" />
</widget>

I use xCode in parallel to simulate my application on iOS. Here below an overview of my configuration in info.plist :

my appDelegate.m :

#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions: 
(NSDictionary*)launchOptions
{
self.viewController = [[MainViewController alloc] init];
return [super application:application 
didFinishLaunchingWithOptions:launchOptions];
}

@end

I looked at the other questions where people had a similar problem, and none of them had exactly the same problem, or an answer that I could use.

If anyone would have a solution to offer or a tip please. It will be almost a week since I am stuck on this problem.

Thank you :slight_smile: