apache / cordova-plugin-splashscreen

Apache Cordova Plugin splashscreen
Apache License 2.0
642 stars 640 forks source link

Overlap with the new Android 12 SplashScreen API #311

Closed ollm closed 2 years ago

ollm commented 3 years ago

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

bhandaribhumin commented 2 years ago

@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.

ollm commented 2 years ago

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>
bhandaribhumin commented 2 years ago

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

alanmilinovic commented 2 years ago

Any news?

terreng commented 2 years ago

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.

bhandaribhumin commented 2 years ago

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

hoatran2205 commented 2 years ago

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

terreng commented 2 years ago

@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.

hoatran2205 commented 2 years ago

@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

terreng commented 2 years ago

@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.

jondspa commented 2 years ago

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

terreng commented 2 years ago

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 commented 2 years ago

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.

erisu commented 2 years ago

@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.