apache / cordova-ios

Apache Cordova iOS
https://cordova.apache.org/
Apache License 2.0
2.16k stars 989 forks source link

a few seconds of blank screen when starting the app #1010

Closed lynntangyuan closed 1 year ago

lynntangyuan commented 3 years ago

Bug Report

Problem

Each time I restart my application, There are a few seconds of blank screen. After that, Page can be loaded normally. How can I make the blank screen disappear?

What is expected to happen?

No blank screen while launching my application.

What does actually happen?

There are a few seconds of blank screen when starting the app

Information

Command or Code

Environment, Platform, Device

  • Cordova-ios6.1.0

  • Xcode 12.0

  • MacOS Catalina10.15.6

  • iOS14.0

Version information

Checklist

  • [x] I searched for existing GitHub issues
  • [ ] I updated all Cordova tooling to most recent version
  • [ ] I included all the necessary information above
adeelcap15 commented 3 years ago

Are you using Splash screen properly?

lynntangyuan commented 3 years ago

Are you using Splash screen properly?

@adeelcap15 As far as I'm concerned, Cordova6.1.0 has cancelled CDVSplashScreen, In file "CDVViewController.m", it launched The LaunchView by itself. I tried to block the code: [self createLaunchView]; the display time of blank screen reduced to 1 second

adeelcap15 commented 3 years ago

IMHO you should use the newer CDVLaunchScreen. It's working fine on Cordova IOS 6.1.1 on iOS 14

asa47 commented 3 years ago

@lynntangyuan Did you manage to solve the issue? We are having the same issue, but I cant figure out what is triggering the white screen.

@adeelcap15 Does the CDVLaunchScreen support the legacy splash screen? If possible we would rather not use the story board in order to keep the same resolution when running the app on the iPad Pro (iPad Pro scale issue).

breautek commented 3 years ago

Does the CDVLaunchScreen support the legacy splash screen? If possible we would rather not use the story board in order to keep the same resolution when running the app on the iPad Pro (iPad Pro scale issue).

Support for legacy launch screens was removed in 6.0.0 via https://github.com/apache/cordova-ios/pull/790

I think the main reason for this is Apple will reject any apps still using legacy splash screens, as of April 2020.

lynntangyuan commented 3 years ago

IMHO you should use the newer CDVLaunchScreen. It's working fine on Cordova IOS 6.1.1 on iOS 14 @adeelcap15 The launch Screen can be loaded normally. After that, when app tried to load CDVViewController based on WKWebview, the blank screen appeared. @asa47 are U under the same circumstances as I described above? Sorry to info that I haven't solve this issue yet.

asa47 commented 3 years ago

@lynntangyuan Yes I sorted the issue on our side, however I am still using the legacy launch screen.

Regarding the white screen, it looks like it is caused by the JS code not being loaded quickly enough in the WebView after displaying the splash/launch screen. In order to fix the issue, I manually hide the splash screen in the javascript side with navigator.splashscreen.hide(). Just remember to add the following in your config.xml: <preference name="AutoHideSplashScreen" value="false" />

dpogue commented 1 year ago

I've marked this issue as stale because it's been over a year with no further comments. If this is still an issue in the latest cordova-ios version and an up-to-date iOS version, please let us know. Otherwise, this issue will be closed.

dpogue commented 1 year ago

Closing as stale.