跳到主要內容

43 篇標記為「Release」的文章

關於新 Electron 版本的部落格文章

檢視所有標籤

Electron 25.0.0

·5 分鐘閱讀

Electron 25.0.0 已發佈!它包含 Chromium 114、V8 11.4 和 Node.js 18.15.0 的升級。閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 25.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的版本發佈網站下載它。繼續閱讀以瞭解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 Twitter 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 問題追蹤器中回報。

值得注意的變更

重點

  • 在 Electron 的 net 模組中實作了 net.fetch,使用 Chromium 的網路堆疊。這與 Node 的 fetch() 不同,後者使用 Node.js 的 HTTP 堆疊。請參閱 #36733#36606
  • 新增了 protocol.handle,它取代並棄用了 protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol#36674
  • 擴展了對 Electron 22 的支援,以便與 Chromium 和 Microsoft 的 Windows 7/8/8.1 棄用計畫相符。請參閱此部落格文章結尾的其他詳細資訊。

堆疊變更

重大變更

已棄用:protocol.{register,intercept}{Buffer,String,Stream,File,Http}Protocol

protocol.register*Protocolprotocol.intercept*Protocol 方法已由 protocol.handle 取代。

新方法可以註冊新協定或攔截現有協定,且回應可以是任何類型。

// Deprecated in Electron 25
protocol.registerBufferProtocol('some-protocol', () => {
callback({ mimeType: 'text/html', data: Buffer.from('<h5>Response</h5>') });
});

// Replace with
protocol.handle('some-protocol', () => {
return new Response(
Buffer.from('<h5>Response</h5>'), // Could also be a string or ReadableStream.
{ headers: { 'content-type': 'text/html' } },
);
});
// Deprecated in Electron 25
protocol.registerHttpProtocol('some-protocol', () => {
callback({ url: 'https://electron.dev.org.tw' });
});

// Replace with
protocol.handle('some-protocol', () => {
return net.fetch('https://electron.dev.org.tw');
});
// Deprecated in Electron 25
protocol.registerFileProtocol('some-protocol', () => {
callback({ filePath: '/path/to/my/file' });
});

// Replace with
protocol.handle('some-protocol', () => {
return net.fetch('file:///path/to/my/file');
});

已棄用:BrowserWindow.setTrafficLightPosition(position)

BrowserWindow.setTrafficLightPosition(position) 已被棄用,應改用 BrowserWindow.setWindowButtonPosition(position) API,它接受 null 而非 { x: 0, y: 0 } 以將位置重設為系統預設值。

// Deprecated in Electron 25
win.setTrafficLightPosition({ x: 10, y: 10 });
win.setTrafficLightPosition({ x: 0, y: 0 });

// Replace with
win.setWindowButtonPosition({ x: 10, y: 10 });
win.setWindowButtonPosition(null);

已棄用:BrowserWindow.getTrafficLightPosition()

BrowserWindow.getTrafficLightPosition() 已被棄用,應改用 BrowserWindow.getWindowButtonPosition() API,當沒有自訂位置時,它會傳回 null 而非 { x: 0, y: 0 }

// Deprecated in Electron 25
const pos = win.getTrafficLightPosition();
if (pos.x === 0 && pos.y === 0) {
// No custom position.
}

// Replace with
const ret = win.getWindowButtonPosition();
if (ret === null) {
// No custom position.
}

新功能

  • 新增了 net.fetch()#36733
    • net.fetch 支援對 file: URL 和使用 protocol.register*Protocol 註冊的自訂協定的請求。#36606
  • 新增了 BrowserWindow.set/getWindowButtonPosition API。#37094
  • 新增了 protocol.handle,取代並棄用了 protocol.{register,intercept}{String,Buffer,Stream,Http,File}Protocol#36674
  • webContents<webview> 標籤中新增了 will-frame-navigate 事件,每當框架階層中的任何框架嘗試導覽時,就會觸發該事件。#34418
  • 將啟動器資訊新增至導覽器事件。此資訊允許區分 window.open 與導致導覽的父框架,而不是子級啟動的導覽。#37085
  • 新增了 net.resolveHost,它使用 defaultSession 物件解析主機。#38152
  • 將新的「did-resign-active」事件新增至 app#38018
  • 將數個標準頁面尺寸選項新增至 webContents.print()#37159
  • enableLocalEcho 旗標新增至工作階段處理常式 ses.setDisplayMediaRequestHandler() 回呼,以允許在 audioWebFrameMain 時,將遠端音訊輸入回音到本機輸出串流中。#37315
  • 將熱管理資訊新增至 powerMonitor#38028
  • 允許將絕對路徑傳遞至 session.fromPath() API。#37604
  • 公開 webContents 上的 audio-state-changed 事件。#37366

22.x.y 繼續支援

告別 Windows 7/8/8.1中所述,Electron 22 (Chromium 108) 的計畫終止生命週期日期將從 2023 年 5 月 30 日延長至 2023 年 10 月 10 日。Electron 團隊將繼續將此計畫中的任何安全性修正向後移植到 Electron 22,直到 2023 年 10 月 10 日。10 月的支援日期遵循 Chromium 和 Microsoft 的延長支援日期。10 月 11 日,Electron 團隊將放棄對最新三個穩定主要版本的支援,這些版本將不再支援 Windows 7/8/8.1。

E25 (23 年 5 月)E26 (23 年 8 月)E27 (23 年 10 月)
25.x.y26.x.y27.x.y
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y22.x.y--

下一步

在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 24.0.0

·4 分鐘閱讀

Electron 24.0.0 已發佈!它包含 Chromium 112.0.5615.49、V8 11.2 和 Node.js 18.14.0 的升級。閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 24.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的版本發佈網站下載它。繼續閱讀以瞭解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 Twitter 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 問題追蹤器中回報。

值得注意的變更

堆疊變更

重大變更

API 已變更:nativeImage.createThumbnailFromPath(path, size)

maxSize 參數已變更為 size,以反映傳入的大小將是建立的縮圖的大小。先前,如果影像小於 maxSize,Windows 將不會放大影像,而 macOS 將始終將大小設定為 maxSize。現在跨平台行為相同。

// a 128x128 image.
const imagePath = path.join('path', 'to', 'capybara.png');

// Scaling up a smaller image.
const upSize = { width: 256, height: 256 };
nativeImage.createThumbnailFromPath(imagePath, upSize).then((result) => {
console.log(result.getSize()); // { width: 256, height: 256 }
});

// Scaling down a larger image.
const downSize = { width: 64, height: 64 };
nativeImage.createThumbnailFromPath(imagePath, downSize).then((result) => {
console.log(result.getSize()); // { width: 64, height: 64 }
});

新功能

  • 新增了使用 cookies.get() 篩選 HttpOnly Cookie 的功能。#37365
  • logUsage 新增至 shell.openExternal() 選項,這允許將 SEE_MASK_FLAG_LOG_USAGE 旗標傳遞至 Windows 上的 ShellExecuteExSEE_MASK_FLAG_LOG_USAGE 旗標表示使用者啟動的啟動,可追蹤常用程式和其他行為。#37291
  • types 新增至 webRequest 篩選器,新增了篩選您監聽的請求的功能。#37427
  • webContents 中新增了新的 devtools-open-url 事件,以允許開發人員使用它們開啟新視窗。#36774
  • 將數個標準頁面尺寸選項新增至 webContents.print()#37265
  • enableLocalEcho 旗標新增至工作階段處理常式 ses.setDisplayMediaRequestHandler() 回呼,以允許在 audioWebFrameMain 時,將遠端音訊輸入回音到本機輸出串流中。#37528
  • 允許將應用程式特定的使用者名稱傳遞至 inAppPurchase.purchaseProduct()#35902
  • 公開 window.invalidateShadow() 以清除 macOS 上的殘留視覺瑕疵。#32452
  • 整個程式最佳化現在預設在 electron node 標頭組態檔中啟用,允許編譯器使用來自程式中所有模組的資訊 (而不是每個模組 (編譯單元) 基礎) 執行最佳化。#36937
  • SystemPreferences::CanPromptTouchID (macOS) 現在支援 Apple Watch。#36935

終止對 21.x.y 的支援

根據專案的支援政策,Electron 21.x.y 已達到終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

告別 Windows 7/8/8.1中所述,Electron 22 (Chromium 108) 的計畫終止生命週期日期將從 2023 年 5 月 30 日延長至 2023 年 10 月 10 日。Electron 團隊將繼續將此計畫中的任何安全性修正向後移植到 Electron 22,直到 2023 年 10 月 10 日。

E24 (23 年 4 月)E25 (23 年 5 月)E26 (23 年 8 月)
24.x.y25.x.y26.x.y
23.x.y24.x.y25.x.y
22.x.y23.x.y24.x.y
--22.x.y22.x.y

下一步

在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 23.0.0

·3 分鐘閱讀

Electron 23.0.0 已發佈!它包含 Chromium 110、V8 11.0 和 Node.js 18.12.1 的升級。此外,已停止對 Windows 7/8/8.1 的支援。閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 23.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的版本發佈網站下載它。繼續閱讀以瞭解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 Twitter 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 問題追蹤器中回報。

值得注意的變更

堆疊變更

新功能

  • label 屬性新增至 Display 物件。#36933
  • 新增了 app.getPreferredSystemLanguages() API 以傳回使用者的系統語言。#36035
  • 新增了對 WebUSB API 的支援。#36289
  • 新增了對 SerialPort.forget() 的支援,以及在給定來源被撤銷時在 Session 物件上發出的新事件 serial-port-revoked#35310
  • 新增了新的 win.setHiddenInMissionControl API,以允許開發人員選擇退出 macOS 上的「任務控制」。#36092

停止 Windows 7/8/8.1 支援

Electron 23 不再支援 Windows 7/8/8.1。Electron 遵循計畫的 Chromium 棄用政策,該政策將在 Chromium 109 中棄用 Windows 7/8/8.1 以及 Windows Server 2012 和 2012 R2 支援 (在此處閱讀更多資訊)

重大 API 變更

以下是在 Electron 23 中引入的重大變更。您可以在計畫重大變更頁面上閱讀有關這些變更和未來變更的更多資訊。

已移除:BrowserWindow scroll-touch-* 事件

已移除 BrowserWindow 上已棄用的 scroll-touch-beginscroll-touch-endscroll-touch-edge 事件。請改為使用 WebContents 上新提供的 input-event 事件。

// Removed in Electron 23.0
-win.on('scroll-touch-begin', scrollTouchBegin)
-win.on('scroll-touch-edge', scrollTouchEdge)
-win.on('scroll-touch-end', scrollTouchEnd)

// Replace with
+win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') +{
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+})

終止對 20.x.y 的支援

根據專案的支援政策,Electron 20.x.y 已達到終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

E22 (22 年 11 月)E23 (23 年 2 月)E24 (23 年 4 月)E25 (23 年 5 月)E26 (23 年 8 月)
22.x.y23.x.y24.x.y25.x.y26.x.y
21.x.y22.x.y23.x.y24.x.y25.x.y
20.x.y21.x.y22.x.y23.x.y24.x.y

下一步

在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 22.0.0

·5 分鐘閱讀

Electron 22.0.0 已發佈!它包含新的公用程式處理序 API、Windows 7/8/8.1 支援的更新,以及 Chromium 108、V8 10.8 和 Node.js 16.17.1 的升級。閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 22.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的版本發佈網站下載它。繼續閱讀以瞭解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 Twitter 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 問題追蹤器中回報。

值得注意的變更

堆疊變更

重點功能

UtilityProcess API #36089

新的 UtilityProcess 主要處理序模組允許建立輕量級 Chromium 子處理序,該子處理序僅具有 Node.js 整合,同時也允許使用 MessageChannel 與沙盒化轉譯器進行通訊。API 的設計基於 Node.js child_process.fork,以便於轉換,主要差異之一是進入點 modulePath 必須來自封裝應用程式內部,以僅允許載入受信任的指令碼。此外,該模組預設會阻止與轉譯器建立通訊通道,從而維護主要處理序是應用程式中唯一受信任處理序的契約。

您可以在此處的文件中閱讀有關新的 UtilityProcess API 的更多資訊

Windows 7/8/8.1 支援更新

資訊

2023/02/16:關於 Windows Server 2012 支援的更新

上個月,Google 宣布 Chrome 109 將繼續接收 Windows Server 2012 和 Windows Server 2012 R2 的重大安全性修正,直到 2023 年 10 月 10 日。因此,Electron 22 (Chromium 108) 的計畫終止生命週期日期將從 2023 年 5 月 30 日延長至 2023 年 10 月 10 日。Electron 團隊將繼續將此計畫中的任何安全性修正向後移植到 Electron 22,直到 2023 年 10 月 10 日。

請注意,我們不會為 Windows 7/8/8.1 進行額外的安全性修正。此外,如先前宣布,Electron 23 (Chromium 110) 將僅在 Windows 10 及更高版本上運作。

Electron 22 將是最後一個支援 Windows 7/8/8.1 的 Electron 主要版本。Electron 遵循計畫的 Chromium 棄用政策,該政策將在 Chromium 109 中棄用 Windows 7/8/8.1 支援 (在此處閱讀更多資訊)

Electron 23 和更新的主要版本將不支援 Windows 7/8/8.1。

其他重點變更

  • 新增了對 Linux 和 Windows 上 Web Bluetooth PIN 配對的支援。#35416
  • 新增了 LoadBrowserProcessSpecificV8Snapshot 作為新的熔斷器,它將讓主要/瀏覽器處理序從 browser_v8_context_snapshot.bin 的檔案載入其 v8 快照。任何其他處理序都將使用與今天相同的路徑。#35266
  • 新增了 WebContents.opener 以存取視窗開啟器,以及 webContents.fromFrame(frame) 以取得對應於 WebFrameMain 實例的 WebContents。#35140
  • 透過新的工作階段處理常式 ses.setDisplayMediaRequestHandler,新增了對 navigator.mediaDevices.getDisplayMedia 的支援。#30702

重大 API 變更

以下是在 Electron 22 中引入的重大變更。您可以在計畫重大變更頁面上閱讀有關這些變更和未來變更的更多資訊。

已棄用:webContents.incrementCapturerCount(stayHidden, stayAwake)

webContents.incrementCapturerCount(stayHidden, stayAwake) 已被棄用。現在當頁面擷取完成時,它會由 webContents.capturePage 自動處理。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

已棄用:webContents.decrementCapturerCount(stayHidden, stayAwake)

webContents.decrementCapturerCount(stayHidden, stayAwake) 已被棄用。現在當頁面擷取完成時,它會由 webContents.capturePage 自動處理。

const w = new BrowserWindow({ show: false })

- w.webContents.incrementCapturerCount()
- w.capturePage().then(image => {
- console.log(image.toDataURL())
- w.webContents.decrementCapturerCount()
- })

+ w.capturePage().then(image => {
+ console.log(image.toDataURL())
+ })

已移除:WebContents new-window 事件

WebContents 的 new-window 事件已移除。它已由 webContents.setWindowOpenHandler() 取代。

- webContents.on('new-window', (event) => {
- event.preventDefault()
- })

+ webContents.setWindowOpenHandler((details) => {
+ return { action: 'deny' }
+ })

已棄用:BrowserWindow scroll-touch-* 事件

BrowserWindow 上的 scroll-touch-beginscroll-touch-endscroll-touch-edge 事件已被棄用。請改為使用 WebContents 上新提供的 input-event 事件

// Deprecated
- win.on('scroll-touch-begin', scrollTouchBegin)
- win.on('scroll-touch-edge', scrollTouchEdge)
- win.on('scroll-touch-end', scrollTouchEnd)

// Replace with
+ win.webContents.on('input-event', (_, event) => {
+ if (event.type === 'gestureScrollBegin') {
+ scrollTouchBegin()
+ } else if (event.type === 'gestureScrollUpdate') {
+ scrollTouchEdge()
+ } else if (event.type === 'gestureScrollEnd') {
+ scrollTouchEnd()
+ }
+ })

終止對 19.x.y 的支援

根據專案的支援政策,Electron 19.x.y 已達到終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (22 年 11 月)E23 (23 年 1 月)
19.x.y20.x.y21.x.y22.x.y23.x.y
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y

下一步

Electron 專案將在 2022 年 12 月暫停一個月,並在 2023 年 1 月恢復。更多資訊請參閱十二月關閉部落格文章

在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 21.0.0

·3 分鐘閱讀

Electron 21.0.0 已發佈!它包含 Chromium 106、V8 10.6 和 Node.js 16.16.0 的升級。閱讀以下內容以瞭解更多詳細資訊!


Electron 團隊很高興宣布 Electron 21.0.0 的發佈!您可以使用 npm 透過 npm install electron@latest 安裝它,或從我們的版本發佈網站下載它。繼續閱讀以瞭解有關此版本的詳細資訊。

如果您有任何意見回饋,請在 Twitter 上與我們分享,或加入我們的社群 Discord!錯誤和功能請求可以在 Electron 的 問題追蹤器中回報。

值得注意的變更

堆疊變更

新功能

  • 新增了 webFrameMain.origin#35534
  • 新增了新的 WebContents.ipcWebFrameMain.ipc API。#35231
  • 新增了對面板式行為的支援。視窗可以浮動在全螢幕應用程式之上。#34388
  • 新增了對 macOS 應用程式來自 APNs 的推播通知的支援。#33574

重大與 API 變更

以下是在 Electron 21 中引入的重大變更。

已啟用 V8 記憶體隔離區

Electron 21 啟用 V8 沙盒指標,遵循 Chrome 在 Chrome 103 中執行相同操作的決定。這對原生模組有一些影響。此功能具有效能和安全性優勢,但也對原生模組施加了一些新的限制,例如使用指向外部 (「堆外」) 記憶體的 ArrayBuffer。請參閱此部落格文章以瞭解更多資訊。#34724

重構 webContents.printToPDF

重構了 webContents.printToPDF 以符合 Chromium 的無頭實作。#33654 連結提供更多資訊。

關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

終止支援 18.x.y

根據專案的支援政策,Electron 18.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

E18 (22 年 3 月)E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (22 年 12 月)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y

下一步

在短期內,您可以期望團隊繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 20.0.0

·4 分鐘閱讀

Electron 20.0.0 已發布!它包含 Chromium 104、V8 10.4 和 Node.js 16.15.0 的升級。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 20.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!

值得注意的變更

新功能

  • 在 Windows 上新增沉浸式深色模式。#34549
  • 新增面板式行為的支援。視窗可以浮動在全螢幕應用程式之上。#34665
  • 更新 Windows 控制項覆疊按鈕,使其在 Windows 11 上看起來和感覺更原生。#34888
  • Renderer 現在預設為沙盒化,除非指定 nodeIntegration: truesandbox: false#35125
  • 在使用 nan 建置原生模組時新增安全措施。#35160

堆疊變更

重大與 API 變更

以下是 Electron 20 中引入的重大變更。關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

預設變更:沒有 nodeIntegration: true 的 renderer 預設為沙盒化

先前,指定預先載入腳本的 renderer 預設為非沙盒化。這表示預設情況下,預先載入腳本可以存取 Node.js。在 Electron 20 中,此預設值已變更。從 Electron 20 開始,renderer 預設為沙盒化,除非指定 nodeIntegration: truesandbox: false

如果您的預先載入腳本不依賴 Node,則無需採取任何動作。如果您的預先載入腳本確實依賴 Node,請重構它們以從 renderer 中移除 Node 的使用,或為相關的 renderer 明確指定 sandbox: false

已修正:nan 原生模組中的自發性崩潰

在 Electron 20 中,我們變更了與原生模組相關的兩個項目

  1. V8 標頭現在預設使用 c++17。此旗標已新增至 electron-rebuild。
  2. 我們修正了一個問題,即遺失的 include 會導致依賴 nan 的原生模組發生自發性崩潰。

為了獲得最佳穩定性,我們建議在重建原生模組時使用 node-gyp >=8.4.0 和 electron-rebuild >=3.2.9,特別是依賴 nan 的模組。請參閱 electron #35160 和 node-gyp #2497 以取得更多資訊。

已移除:Linux 上的 .skipTaskbar

在 X11 上,skipTaskbar 會將 _NET_WM_STATE_SKIP_TASKBAR 訊息傳送到 X11 視窗管理器。Wayland 沒有直接的等效項,而且已知的解決方案具有不可接受的權衡 (例如,GNOME 中的 Window.is_skip_taskbar 需要不安全模式),因此 Electron 無法在 Linux 上支援此功能。

終止支援 17.x.y

根據專案的支援政策,Electron 17.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

E18 (22 年 3 月)E19 (22 年 5 月)E20 (22 年 8 月)E21 (22 年 9 月)E22 (22 年 12 月)
18.x.y19.x.y20.x.y21.x.y22.x.y
17.x.y18.x.y19.x.y20.x.y21.x.y
16.x.y17.x.y18.x.y19.x.y20.x.y
15.x.y--------

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每大約 2 個月發布包含這些元件新版本的 Electron 主要版本。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 19.0.0

·3 分鐘閱讀

Electron 19.0.0 已發布!它包含 Chromium 102、V8 10.2 和 Node.js 16.14.2 的升級。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 19.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!

值得注意的變更

Electron 發布節奏變更

專案正在恢復其先前的政策,即支援最新的三個主要版本。請參閱我們的版本控制文件,以取得關於 Electron 版本控制和支援的更詳細資訊。為了幫助使用者適應從 Electron 15 開始的新發布節奏,先前暫時支援四個主要版本。您可以在此處閱讀完整詳細資訊

堆疊變更

重大與 API 變更

以下是 Electron 19 中引入的重大變更。關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

Linux 上不支援:.skipTaskbar

BrowserWindow 建構函式選項 skipTaskbar 在 Linux 上不再受支援。變更於 #33226

已移除 WebPreferences.preloadURL

半公開的 preloadURL 屬性已從 WebPreferences 中移除。#33228。應改用 WebPreferences.preload

終止支援 15.x.y 和 16.x.y

Electron 14.x.y 和 15.x.y 都已終止支援。這使 Electron 回歸到其現有政策,即支援最新的三個主要版本。建議開發人員和應用程式升級到較新版本的 Electron。

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (22 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每大約 2 個月發布包含這些元件新版本的 Electron 主要版本。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 18.0.0

·3 分鐘閱讀

Electron 18.0.0 已發布!它包含 Chromium 100、V8 10.0 和 Node.js 16.13.2 的升級。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 18.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!

值得注意的變更

Electron 發布節奏變更

從 Electron 15 開始,Electron 將每 8 週發布一個新的主要穩定版本。您可以在此處閱讀完整詳細資訊

此外,Electron 已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月。請參閱我們的版本控制文件,以取得關於 Electron 版本控制的更詳細資訊。在 2022 年 5 月之後,我們將恢復支援最新的三個版本。

堆疊變更

重點功能

  • 新增 ses.setCodeCachePath() API,用於設定程式碼快取目錄。#33286
  • 移除基於舊版 BrowserWindowProxywindow.open 實作。這也從 webPreferences 中移除了 nativeWindowOpen 選項。#29405
  • 將 'focus' 和 'blur' 事件新增至 WebContents#25873
  • 在 macOS 上新增替換選單角色:showSubstitutionstoggleSmartQuotestoggleSmartDashestoggleTextReplacement#32024
  • first-instance-ack 事件新增至 app.requestSingleInstanceLock() 流程,允許使用者將資料從第一個執行個體無縫傳輸到第二個執行個體。#31460
  • setBackgroundColor 中新增對更多顏色格式的支援。#33364

請參閱 18.0.0 發行說明以取得新功能和變更的完整清單。

重大與 API 變更

以下是 Electron 18 中引入的重大變更。關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

已移除:nativeWindowOpen

在 Electron 15 之前,window.open 預設會被墊片化以使用 BrowserWindowProxy。這表示 window.open('about:blank') 無法運作以同步開啟可編寫腳本的子視窗,以及其他不相容性。自 Electron 15 以來,nativeWindowOpen 已預設啟用。

請參閱 Electron 中 window.open 的文件以取得更多詳細資訊。移除於 #29405

終止支援 14.x.y

根據專案的支援政策,Electron 14.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

從 Electron 15 開始,我們已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之後,我們將恢復支援最新的三個版本。此版本支援變更是我們新節奏變更的一部分。請參閱我們的部落格文章以取得此處的完整詳細資訊

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (22 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每大約 2 個月發布包含這些元件新版本的 Electron 主要版本。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 17.0.0

·3 分鐘閱讀

Electron 17.0.0 已發布!它包含 Chromium 98、V8 9.8 和 Node.js 16.13.0 的升級。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 17.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!

值得注意的變更

Electron 發布節奏變更

從 Electron 15 開始,Electron 將每 8 週發布一個新的主要穩定版本。您可以在此處閱讀完整詳細資訊

此外,Electron 已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月。請參閱我們的版本控制文件,以取得關於 Electron 版本控制的更詳細資訊。在 2022 年 5 月之後,我們將恢復支援最新的三個版本。

堆疊變更

重點功能

  • 新增 webContents.getMediaSourceId(),可用於 getUserMedia 以取得 WebContents 的串流。#31204
  • 已棄用 webContents.getPrinters() 並引入 webContents.getPrintersAsync()#31023
  • desktopCapturer.getSources 現在僅在主程序中可用。#30720

請參閱 17.0.0 發行說明以取得新功能和變更的完整清單。

重大變更

以下是 Electron 17 中引入的重大變更。關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

renderer 中的 desktopCapturer.getSources

desktopCapturer.getSources API 現在僅在主程序中可用。此變更旨在提高 Electron 應用程式的預設安全性。

API 變更

Electron 17 中沒有 API 變更。

已移除/已棄用的變更

  • 已移除在 renderer 中使用 desktopCapturer.getSources API。請參閱此處以了解如何在您的應用程式中取代此 API 的詳細資訊。

終止支援 13.x.y

根據專案的支援政策,Electron 13.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

從 Electron 15 開始,我們已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之後,我們將恢復支援最新的三個版本。此版本支援變更是我們新節奏變更的一部分。請參閱我們的部落格文章以取得此處的完整詳細資訊

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (22 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每大約 2 個月發布包含這些元件新版本的 Electron 主要版本。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。

Electron 16.0.0

·4 分鐘閱讀

Electron 16.0.0 已發布!它包含 Chromium 96、V8 9.6 和 Node.js 16.9.1 的升級。請閱讀以下內容以了解更多詳細資訊!


Electron 團隊很高興宣布 Electron 16.0.0 的發布!您可以使用 npm 透過 npm install electron@latest 安裝,或從我們的發布網站下載。繼續閱讀以了解有關此版本的詳細資訊,並請分享您的任何意見回饋!

值得注意的變更

Electron 發布節奏變更

從 Electron 15 開始,Electron 將每 8 週發布一個新的主要穩定版本。您可以在此處閱讀完整詳細資訊

此外,Electron 已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月。請參閱我們的版本控制文件,以取得關於 Electron 版本控制的更詳細資訊。在 2022 年 5 月之後,我們將恢復支援最新的三個版本。

堆疊變更

重點功能

  • 現在支援 WebHID API。#30213
  • 將資料參數新增至 app.requestSingleInstanceLock,以在執行個體之間共用資料。#30891
  • 將 securityOrigin 傳遞至媒體權限請求處理常式。#31357
  • 新增 commandLine.removeSwitch#30933

請參閱 16.0.0 發行說明以取得新功能和變更的完整清單。

重大變更

以下是 Electron 16 中引入的重大變更。關於這些變更以及未來變更的更多資訊,請參閱計畫中的重大變更頁面。

建置原生模組

如果您的專案使用 node-gyp 建置原生模組,您可能需要使用 --force-process-config 呼叫它,具體取決於您的專案設定和 Electron 版本。關於此變更的更多資訊,請參閱 #2497

行為變更:crashReporter 實作在 Linux 上切換到 Crashpad

Linux 上 crashReporter API 的底層實作已從 Breakpad 變更為 Crashpad,使其與 Windows 和 Mac 一致。因此,現在會自動監控子程序,並且不再需要在 Node 子程序中呼叫 process.crashReporter.start (不建議這樣做,因為它會啟動 Crashpad 報告器的第二個執行個體)。

關於如何在 Linux 上報告註釋,也存在一些細微的變更,包括長值將不再在附加了 __1__2 等的註釋之間分割,而是將在 (新的、更長的) 註釋值限制處截斷。

API 變更

Electron 16 中沒有 API 變更。

已移除/已棄用的變更

  • 在 renderer 中使用 desktopCapturer.getSources API 已被棄用,並將被移除。此變更提高了 Electron 應用程式的預設安全性。請參閱此處以了解如何在您的應用程式中取代此 API 的詳細資訊。

終止支援 12.x.y

根據專案的支援政策,Electron 12.x.y 已終止支援。建議開發人員和應用程式升級到較新版本的 Electron。

從 Electron 15 開始,我們已將支援的版本從最新的三個版本變更為最新的四個版本,直到 2022 年 5 月的 Electron 19。在 Electron 19 之後,我們將恢復支援最新的三個版本。此版本支援變更是我們新節奏變更的一部分。請參閱我們的部落格文章以取得此處的完整詳細資訊

E15 (21 年 9 月)E16 (21 年 11 月)E17 (22 年 2 月)E18 (22 年 3 月)E19 (22 年 5 月)
15.x.y16.x.y17.x.y18.x.y19.x.y
14.x.y15.x.y16.x.y17.x.y18.x.y
13.x.y14.x.y15.x.y16.x.y17.x.y
12.x.y13.x.y14.x.y15.x.y--

下一步

在短期內,您可以預期團隊將繼續專注於跟上構成 Electron 的主要元件 (包括 Chromium、Node 和 V8) 的開發。雖然我們謹慎地不對發布日期做出承諾,但我們的計畫是每大約 2 個月發布包含這些元件新版本的 Electron 主要版本。

您可以在此處找到 Electron 的公開時程表

有關未來變更的更多資訊,請參閱計畫重大變更頁面。