GitHub user veronicatc edited a comment on the discussion: Make splash screen 
icon show when opening the app from deep link by including item in themes.xml

I could achieve this using an after_prepare script. 

1) Make sure these are present at the <widget> tag at config.xml:

`xmlns:android="http://schemas.android.com/apk/res/android"; 
xmlns:tools="http://schemas.android.com/tools"`

2) Add hook inside android platform section:

`<hook src="scripts/after_prepare_theme.js" type="after_prepare" />`

3) This is the content of after_prepare_theme.js:

`   
    #!/usr/bin/env node

    // This hook adds a row to themes.xml after it has been dynamically 
created, to show splash screen icon when app is opened from deep links

    var fileToReplace = "platforms/android/app/src/main/res/values/themes.xml";

    var fs = require('fs');
    var path = require('path');

    function replace_string_in_file(filename, to_replace, replace_with) {
       var data = fs.readFileSync(filename, 'utf8');

       var result = data.replace(new RegExp(to_replace, "g"), replace_with);
       fs.writeFileSync(filename, result, 'utf8');
       var data2 = fs.readFileSync(filename, 'utf8');
       console.log(data2);
    }

   module.exports = function(context) {
    // var rootdir = process.argv[2]; // old cordova version
    var rootdir = context.opts.projectRoot;

    var fullfilename = path.join(rootdir, fileToReplace);
    if (fs.existsSync(fullfilename)) {
        replace_string_in_file(fullfilename, "</style>", '<item 
name="android:windowSplashScreenBehavior" 
tools:targetApi="33">icon_preferred</item></style>');
    }
    }
`

Tested on a device with Android 13 and on an emulator with Android 12. On 
Android 12 it didn't show the icon, as expected, but didn't throw errors 
either. Since I need this mostly for devices with Android 13 and after, this is 
ok for me.

GitHub link: 
https://github.com/apache/cordova/discussions/535#discussioncomment-12794683

----
This is an automatically sent email for issues@cordova.apache.org.
To unsubscribe, please send an email to: issues-unsubscr...@cordova.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to