blob: 27ebce8c0dcfa9d6d16a68cd924d8f6b5c3fbf29 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="format-detection" content="telephone=no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
<meta name="description" content="We are happy to announce that we have just released Cordova Electron 4.0.0! This is one of Cordova&#39;s supported platforms for building Electron applicatio...">
<title>
Cordova Electron 4.0.0 Released! - Apache Cordova
</title>
<link rel="SHORTCUT ICON" href="/favicon.ico"/>
<link rel="canonical" href="https://cordova.apache.org/announcements/2024/03/11/cordova-electron-release-4.0.0.html">
<!-- CSS -->
<link rel="stylesheet" type="text/css" href="/static/css/main.css">
<link rel="stylesheet" type="text/css" href="/static/css/lib/syntax.css">
<!-- Fonts -->
<!-- For attribution information, see www/attributions.html -->
<link href='https://fonts.googleapis.com/css?family=Raleway:700,400,300,700italic,400italic,300italic' rel='stylesheet' type='text/css'>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<script type="text/javascript">
var disqus_developer = 1; // this would set it to developer mode
</script>
<!-- JS -->
<script defer type="text/javascript" src="/static/js/lib/jquery-2.1.1.min.js"></script>
<script defer type="text/javascript" src="/static/js/lib/bootstrap.min.js"></script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '16']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body>
<header>
<a class="scroll-point pt-top" name="top"></a>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/"><img id="logo_top" src="/static/img/cordova-logo-newbrand.svg"/></a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<div class="nav_bar_center">
<ul class="nav navbar-nav">
<li >
<a href="/docs/en/latest/">Documentation</a>
</li>
<li >
<a href="/plugins">Plugins</a>
</li>
<li class="active">
<a href="/blog" id="blog_button">Blog<span class="badge" id="new_blog_count"></span></a>
</li>
<li >
<a href="/contribute">Contribute</a>
</li>
<li >
<a href="/contribute/team.html">Team</a>
</li>
<li>
<a href="/#getstarted">Get Started</a>
</li>
<li>
<form class="navbar-form navbar-right" id="header-search-form" role="search">
<div class="input-group">
</div>
</form>
</li>
</ul>
</div>
</div><!--/.navbar-collapse -->
</div>
</nav>
<div id="_fixed_navbar_spacer" style="padding-top:50px"></div>
</header>
<div class="page container">
<div class="blog">
<h1 class="blogHeader">
Blog
<span class="rss">
<img src="/static/img/subscribe.png"><a href="/feed.xml">RSS Feed</a>
</span>
</h1>
<div class="post">
<header>
<div class="title">Cordova Electron 4.0.0 Released!</div>
<div class="author">By:
Bryan Ellis
</div>
<div class="date">11 Mar 2024</div>
</header>
<section>
<div>
<p>We are happy to announce that we have just released <code>Cordova Electron 4.0.0</code>! This is one of Cordova&#39;s supported platforms for building Electron applications.</p>
<ul>
<li><a href="https://www.npmjs.com/package/cordova-electron">cordova-electron@4.0.0</a></li>
</ul>
<p><strong>To upgrade:</strong></p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cordova platform remove electron
cordova platform add electron@4.0.0
</code></pre></div></div>
<p><strong>To install:</strong></p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cordova platform add electron@4.0.0
</code></pre></div></div>
<h2>Release Highlights</h2>
<p>Some of the notable breaking changes in this release are:</p>
<p><strong>Node.js Requirement:</strong></p>
<p>This release requires the environment to have <strong>Node.js</strong> <code>18.0.0</code> or higher. It is recommended to use the current LTS, which is <code>20.11.1</code> at the time of this release.</p>
<p><strong>Electron Update:</strong></p>
<p>The <strong>Electron</strong> core dependencies have been updated to <code>29.0.0</code>. This version of Electron comes with the following app stack:</p>
<ul>
<li>Chromium 122.0.6261.39</li>
<li>Node v20.9.0</li>
<li>V8 12.2</li>
</ul>
<p>More information about Electron 29.0.0 can be read on their <a href="https://www.electronjs.org/blog/electron-29-0">blog post here</a>.</p>
<p><strong>Removed Plugin Argument&#39;s Accidental Multidimensional Array Wrapping:</strong></p>
<p>In Cordova-Electron 3.0.0, plugin support was introduced, but an unintentional multidimensional array wrapping of the plugin arguments occurred. This wrapping may not have been noticeable to app developers, but it affected plugin developers.</p>
<p>Typically, a plugin includes a set of APIs that may accept arguments, and these arguments are forwarded to the native side of the plugin. Due to improper argument spreading, plugin developers had to consistently access index 0 at the first level to retrieve the actual arguments, as in <code>args[0][0]</code>. There was never an <code>args[n+1]</code> scenario.</p>
<p>This release corrected this issue. Plugin developers will need to update their plugins if the plugins are designed to read passed-in arguments.</p>
<p>For a quick start guide and in-depth configuration setup, please check out our <a href="https://cordova.apache.org/docs/en/12.x/guide/platforms/electron/index.html">Cordova Electron Documentation</a>!</p>
<p>Please report any issues you find at <a href="http://issues.cordova.io/">issues.cordova.io</a>!</p>
<!--more-->
<h1>Changes include:</h1>
<h4>Breaking</h4>
<ul>
<li><a href="https://github.com/apache/cordova-electron/pull/263">GH-263</a> feat!: bump <code>electron@^29.0.0</code> w/ supporting changes</li>
<li><a href="https://github.com/apache/cordova-electron/pull/266">GH-266</a> fix!: remove extra array wrapper from passed arguments</li>
<li><a href="https://github.com/apache/cordova-electron/pull/264">GH-264</a> npm(dep)!: bump <code>electron-builder@^24.12.0</code>, bump node engine requirement &amp; CI
<ul>
<li>Updates Node Engine Requirement <code>&gt;= 18.0.0</code></li>
</ul>
</li>
<li><a href="https://github.com/apache/cordova-electron/pull/271">GH-271</a> dep!: bump <code>fs-extra@^11.2.0</code></li>
<li><a href="https://github.com/apache/cordova-electron/pull/265">GH-265</a> npm(dep)!: bump other dependencies</li>
</ul>
<h4>Others</h4>
<ul>
<li><a href="https://github.com/apache/cordova-electron/pull/232">GH-232</a> dep(npm): bump dev dependencies</li>
<li><a href="https://github.com/apache/cordova-electron/pull/270">GH-270</a> chore: rebuilt <code>package-lock.json</code></li>
</ul>
<h4>CI:**</h4>
<ul>
<li><a href="https://github.com/apache/cordova-electron/pull/268">GH-268</a> ci: downgrade codecov action dependency to v3</li>
<li><a href="https://github.com/apache/cordova-electron/pull/267">GH-267</a> ci: add node 20.x &amp; use latest action dependencies</li>
<li><a href="https://github.com/apache/cordova-electron/pull/236">GH-236</a> ci: update github action workflow</li>
</ul>
</div>
</section>
<footer>
<div class="row">
<div class="col-sm-6">
<a href="/announcements/2024/01/12/survey-results.html">Previous</a>
<br>
<br>
<a class="title" href="/announcements/2024/01/12/survey-results.html">Cordova Survey 2023 Results</a>
<div class="date"> 12 Jan 2024 - By Niklas Merz </div>
<p class="content">
Thank you very much for taking part in our user &amp; contributor...
</p>
</div>
<div class="col-sm-6">
<a href="/announcements/2024/04/03/cordova-ios-7.1.0.html">Next</a>
<br>
<br>
<a class="title" href="/announcements/2024/04/03/cordova-ios-7.1.0.html">Cordova iOS 7.1.0 Released!</a>
<div class="date"> 03 Apr 2024 - By Bryan Ellis </div>
<p class="content">
<!--
NOTE:
the markdownify filter is used here
because posts are rendered in sequence;
that is, the next post's content isn't
yet rendered at the time that this post
is being rendered, so page.next.excerpt
is still in Markdown and not HTML
Reference: https://github.com/jekyll/jekyll/issues/2860
-->
We are happy to announce that we have just released Cordova iOS...
</p>
</div>
</div>
</footer>
<div class="disqus">
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES * * */
var disqus_shortname = 'cordovablogs';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</div>
</div>
</div>
</div>
<div class="blue-divider"></div>
<footer>
<div class="container">
<div class="row">
<div class="col-sm-9">
<h1>More Resources</h1>
<div class="row">
<div class="col-sm-4">
<h2>General</h2>
<ul class="nav">
<li>
<a target="_blank" href="https://projects.apache.org/project.html?cordova">Apache Project Page</a>
</li>
<li>
<a href="https://www.apache.org/dyn/closer.cgi/cordova">Source Distribution</a>
</li>
<li>
<a target="_blank" href="https://www.apache.org/licenses">License</a>
</li>
<li>
<a href="/artwork">Artwork</a>
</li>
</ul>
</div>
<div class="col-sm-4">
<h2>Development</h2>
<ul class="nav">
<li><a target="_blank" href="https://github.com/apache?utf8=%E2%9C%93&amp;q=cordova-">Source Code</a></li>
<li><a target="_blank" href="https://github.com/apache/cordova#filing-a-bug">Issue Tracker</a></li>
<li><a target="_blank" href="https://stackoverflow.com/questions/tagged/cordova">Stack Overflow</a></li>
<li><a href="/contact">Mailing List</a></li>
<li><a href="/contribute/nightly_builds.html">Nightly builds</a></li>
</ul>
</div>
<div class="col-sm-4">
<h2>Apache Software Foundation</h2>
<ul class="nav">
<li>
<a target="_blank" href="https://www.apache.org/">About ASF</a>
</li>
<li>
<a target="_blank" href="https://www.apache.org/events/current-event">Events</a>
</li>
<li>
<a target="_blank" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a>
</li>
<li>
<a target="_blank" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
<li>
<a target="_blank" href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a target="_blank" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy policy</a>
</li>
</ul>
</div>
</div>
</div>
<div class="col-sm-3">
<h1>Contribute</h1>
<p style="padding-top:20px"><strong>Help Cordova move forward!</strong></p>
<p>Report bugs, improve the docs, or contribute to the code.</p>
<a href="/contribute" class="btn btn-lg btn-primary">
Learn More
</a>
<p style="padding-top:20px"> <a href="https://twitter.com/apachecordova" class="twitter-follow-button" data-show-count="false">Follow @apachecordova</a></p>
</div>
</div>
<p class="copyright_text">
Copyright &copy; 2024 <a href="https://apache.org">The Apache Software Foundation</a>, Licensed under the <a target="_blank" href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br/>
Apache and the Apache feather logos are <a target="_blank" href="https://www.apache.org/foundation/marks/list/">trademarks</a> of The Apache Software Foundation.
<br/>
<p>See the <a href="/attributions/">attributions page</a> for other copyright & trademark notices.</p>
</p>
</div>
</footer>
<script defer type="text/javascript" src="/static/js/index.js"></script>
<script defer type="text/javascript" src="/static/js/twitter.js"></script>
</body>
</html>