cordova-plugin-splashscreen icon indicating copy to clipboard operation
cordova-plugin-splashscreen copied to clipboard

Overlap with the new Android 12 SplashScreen API

Open ollm opened this issue 3 years ago • 14 comments

Bug Report

In Android 12 now there are two splash screens, first from the SplashScreen API and then from the plugin.

https://developer.android.com/about/versions/12/features/splash-screen https://developer.android.com/reference/android/window/SplashScreen

Problem

What is expected to happen?

In Android 12 it should show only the splash screen from SplashScreen API.

What does actually happen?

Now there are two splash screens, first from the SplashScreen API and then from the plugin

Information

Command or Code

Environment, Platform, Device

Version information

Checklist

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

ollm avatar May 21 '21 11:05 ollm

@ollm I have fixed this using hook create file splash_styles.xml

<resources>
  <style name="SplashTheme" parent="android:Theme.Light">
  </style>
  <style name="Theme.RemoveSplashScreenTheme" parent="SplashTheme">
    <item name="android:windowIsTranslucent">true</item>
  </style>
</resources>

You have to add this file instance in AndroidManifest.xml at MainActivity section.

bhandaribhumin avatar Oct 08 '21 12:10 bhandaribhumin

Thanks for the solution, I'll wait for now, since I would prefer to use the native Android 12 SpashScreen instead of the plugin.

By the way, you should be able to add the reference to AndroidManifest.xml from config.xml, so you don't have to edit the AndroidManifest.xml file, and if you remove the android platform and add it again, the changes are kept.

    <platform name="android">
        <resource-file src="pathtoxml/splash_styles.xml" target="app/src/main/res/drawable/splash_styles.xml" />
    </platform>

ollm avatar Oct 08 '21 12:10 ollm

Cordova-android10+ used Theme.AppCompact which is not compatible with our fix. Hope soon plugin owner fix this.

bhandaribhumin avatar Oct 12 '21 08:10 bhandaribhumin

Any news?

alanmilinovic avatar Feb 11 '22 15:02 alanmilinovic

Hi there. I added dark mode support for splash screens. This issue is on my to-do list, and I will look into it when I get the chance (no timeline, hopefully this year) if no one else has fixed it by then.

terreng avatar Feb 11 '22 16:02 terreng

@terreng if you need any help let me know, I'll help you on this.

bhandaribhumin avatar Feb 14 '22 09:02 bhandaribhumin

Hi there. I have an issue on Android 12 that SplashScreen didn't close when app init. My app can run with Android under 12. I used cordova-plugin-splashscreen but with android 12 it show error like: Msg: Native: tried calling SplashScreen.hide, but the SplashScreen plugin is not installed.
How can I solve this problem. Please help me

hoatran2205 avatar Mar 23 '22 12:03 hoatran2205

@hoatran2205 Hi there. It looks like you're using Ionic / Capacitor, which is not compatible with this plugin. Please let me know if I am mistaken.

terreng avatar Mar 23 '22 14:03 terreng

@terreng

App version node: v10.0.1 ionic-native/splash-screen: v5.0.0 cordova-android: v8.0.0 cordova-plugin-splashscreen: 5.0.2

In ionic source, I use "@ionic-native/splash-screen/ngx" to call function to hide splash screen When build app, I use "ionic capacitor run android" to build Adroid app

hoatran2205 avatar Mar 23 '22 14:03 hoatran2205

@hoatran2205 If you are using Ionic / Capacitor, then you should be using the Capacitor splashscreen API. It sounds like the issue you are experiencing is related to Ionic / Capacitor, so I suggest you seek help elsewhere.

terreng avatar Mar 23 '22 15:03 terreng

Hi -

Any update on a new plugin version to deal with the new Android 12 splashscreen. I am getting an Android 12 extra splashscreen with my logo on a black background. I've changed to use android-targetSdkVersion 31 and now I just get the black background, no logo. I am hoping the next version of this plugin allows me to control this Android 12 splashscreen. I've tried all ideas suggested in this thread and none work. Maybe I can specify my own splashscreen or at least a white background. I also upgraded to the latest version of this plugin but didn't help. (I'm using Cordova 10.0.0 and android 9.0.0. Thanks so much! - Jon

jondspa avatar Apr 20 '22 19:04 jondspa

Hi @jondspa. I added dark mode support for splash screens, and this Android 12 issue is on my to do list. I am hoping to create a fix for this issue in the next few months.

terreng avatar Apr 20 '22 19:04 terreng

With the release of Cordova Android 11.0.0 yesterday, the Android 12 SplashScreen API is now supported. PR, docs. This issue should be closed. The readme for this plugin should probably be updated.

terreng avatar Jul 13 '22 16:07 terreng

@terreng There is already a vote in progress for the release of 6.0.2.

Version 6.0.2 has updated the engine requirements to >=3.6.0 <11.0.0. This plugin starting from 6.0.2 will not install for Cordova-Android 11.x. Obviously, if a user runs an older version of the plugin, it will install. Older versions that were released cant be changed, and usually patch releases for older major versions aren't performed.

PR that updated the engine requirements: https://github.com/apache/cordova-plugin-splashscreen/pull/329

Also a note was added to the README.

There will be a major release, 7.0.0, that will remove all of the Android source code and documentation from this repo.

Documentation for settings that remain and the addition of the new Android 12 SplashScreen API is added to the cordova-doc repo and can be seen here.

erisu avatar Jul 14 '22 06:07 erisu