Electron 3.0.0
·4 分鐘閱讀
Electron 團隊很高興宣布,Electron 3 的第一個穩定版本現已於 electronjs.org 和透過 npm install electron@latest
提供!它包含了大量的升級、修正和新功能,我們迫不及待想看看您將使用它們構建什麼。以下是關於此版本的詳細資訊,我們歡迎您在探索時提供回饋。
發行流程
在我們進行 v3.0.0
的開發時,我們試圖透過將漸進式 beta 版本的反饋進度形式化,更經驗性地定義穩定版本的標準。如果沒有我們的 App Feedback Program 合作夥伴在 beta 週期期間提供早期測試和反饋,v3.0.0
將不可能實現。感謝 Atlassian、Atom、Microsoft Teams、Oculus、OpenFin、Slack、Symphony、VS Code 和其他計畫成員的努力。如果您想參與未來的 beta 測試,請發送郵件至 info@electronjs.org。
變更 / 新功能
Electron 工具鏈中幾個重要部分的重大升級,包括 Chrome v66.0.3359.181
、Node v10.2.0
和 V8 v6.6.346.23
。
- [#12656] feat:
app.isPackaged
- [#12652] feat:
app.whenReady()
- [#13183] feat:
process.getHeapStatistics()
- [#12485] feat:
win.moveTop()
將視窗 z 軸順序移至頂部 - [#13110] feat: TextField 和 Button API
- [#13068] feat: 用於動態記錄控制的 netLog API
- [#13539] feat: 在沙盒渲染器中啟用
webview
- [#14118] feat:
fs.readSync
現在可以處理大型檔案 - [#14031] feat: node
fs
包裝器,使fs.realpathSync.native
和fs.realpath.native
可用
重大 API 變更
- [#12362] feat: 更新選單項目順序控制
- [#13050] refactor: 移除已記錄的已棄用 API
- 請參閱 文件 以取得更多詳細資訊
- [#12477] refactor: 移除
did-get-response-details
和did-get-redirect-request
事件 - [#12655] feat: 預設停用拖放導航
- [#12993] feat: 使用
electron
npm 模組需要 Nodev4.x
或更高版本 - [#12008 #12140 #12503 #12514 #12584 #12596 #12637 #12660 #12696 #12716 #12750 #12787 #12858] refactor:
NativeWindow
- [#11968] refactor:
menu.popup()
- [#8953] feat: 不再使用 JSON 發送
ipcRenderer.sendSync
的結果 - [#13039] feat: 預設忽略 URL 後面的命令列引數
- [#12004] refactor: 將
api::Window
重新命名為api::BrowserWindow
- [#12679] feat: 視覺縮放預設關閉
- [#12408] refactor: 將應用程式命令
media-play_pause
重新命名為media-play-pause
macOS
- [#12093] feat: 工作區通知支援
- [#12496] feat:
tray.setIgnoreDoubleClickEvents(ignore)
忽略系統匣圖示雙擊事件。 - [#12281] feat: macOS 上的滑鼠前進功能
- [#12714] feat: 螢幕鎖定 / 解鎖事件
Windows
- [#12879] feat: 新增 DIP 到/從螢幕座標轉換
請注意: 在執行此版本後切換到舊版本的 Electron,您需要清除使用者資料目錄,以避免舊版本崩潰。您可以執行 console.log(app.getPath("userData"))
來取得使用者資料目錄,或參閱 文件 以取得更多詳細資訊。
錯誤修正
- [#13397] fix:
fs.statSyncNoException
拋出例外狀況的問題 - [#13476, #13452] fix: 載入具有 jquery 的網站時崩潰
- [#14092] fix:
net::ClientSocketHandle
解構函式中的崩潰 - [#14453] fix: 立即通知焦點變更,而不是在下一個 tick
MacOS
- [#13220] fix: 允許在
<input file="type">
開啟檔案對話方塊中選取 bundle 的問題 - [#12404] fix: 使用非同步對話方塊時封鎖主程序的問題
- [#12043] fix: 上下文選單點擊回呼
- [#12527] fix: 重複使用觸控列項目時的事件洩漏
- [#12352] fix: 系統匣標題崩潰
- [#12327] fix: 不可拖曳區域
- [#12809] fix: 防止選單在開啟時更新
- [#13162] fix: 系統匣圖示邊界不允許負值
- [#13085] fix: 醒目提示時系統匣標題未反轉
- [#12196] fix:
enable_run_as_node==false
時的 Mac 建置 - [#12157] fix: 具有 vibrancy 的無邊框視窗的其他問題
- [#13326] fix: 在呼叫
app.removeAsDefaultProtocolClient
後將 mac 協定設定為 none - [#13530] fix: MAS 建置中不正確地使用私有 API
- [#13517] fix:
tray.setContextMenu
崩潰 - [#14205] fix: 即使設定了
defaultId
,在對話方塊上按下 escape 鍵現在也會關閉它
Linux
- [#12507] fix: 螢幕外視窗的
BrowserWindow.focus()
其他注意事項
- PDF 檢視器目前無法運作,但正在努力解決中,並將很快恢復功能
TextField
和Button
API 是實驗性的,因此預設為關閉- 可以使用
enable_view_api
建置標誌啟用它們
- 可以使用
下一步
Electron 團隊將繼續努力定義我們的流程,以實現更快速和順暢的升級,因為我們力求最終與 Chromium、Node 和 V8 的開發節奏保持一致。