Hey @seeeb,
Disclaimer: I haven’t tested any of this on a device, this is purely from reading the Meteor source code. Let me know if something doesn’t work as expected. 
The splashscreen plugin was removed in Meteor 2.14 because Cordova Android 12+ now handles the initial launch splash natively (via cordova-android core). The trade-off is that the old navigator.splashscreen.show() / .hide() API — which let you programmatically show/hide the splash at any time — is no longer available by default.
The launch-screen package still references navigator.splashscreen internally, but that object no longer exists without the plugin.
Workaround 1 — Re-add the plugin manually
The simplest fix if you just want the old behavior back:
meteor add cordova:cordova-plugin-splashscreen@6.0.2
This should restore navigator.splashscreen.show() / .hide(), and the launch-screen package should work as before. The plugin still works with recent Cordova versions — Meteor just stopped bundling it by default.
Workaround 2 — HTML/CSS overlay (no plugin needed)
If you’d rather not depend on the old plugin, you can create a full-screen overlay that you show before the HCP reload and that gets naturally destroyed when the WebView reloads with the new version:
In your main HTML:
<div id="hcp-overlay" style="display:none; position:fixed; inset:0; z-index:99999; background:#fff; align-items:center; justify-content:center;">
<p>Updating…</p>
</div>
In your client startup:
if (Meteor.isCordova) {
WebAppLocalServer.onNewVersionReady(() => {
const overlay = document.getElementById('hcp-overlay');
if (overlay) overlay.style.display = 'flex';
// Reload happens automatically via the autoupdate package
});
}
Since the page fully reloads after switchToPendingVersion(), the overlay disappears naturally when the new version renders.
Workaround 3 — Reload._onMigrate hook
For more control over timing, you can hook into the reload migration system:
if (Meteor.isCordova) {
Reload._onMigrate('hcpSplash', (retry) => {
document.getElementById('hcp-overlay').style.display = 'flex';
return [true]; // allow reload to proceed
});
}
This fires right before the actual reload, so the overlay appears at the last possible moment.
Workaround 1 is the quickest path. Workaround 2/3 give you full control over the UI without an extra Cordova plugin dependency. Again, untested — happy to dig deeper if you hit issues.