Electron 3.0.0
·4 分鐘閱讀
Electron 團隊很高興宣布,第一個穩定的 Electron 3 版本現在可從 electronjs.org 和透過 npm install electron@latest
取得!它充滿了升級、修復和新功能,我們迫不及待想看看您使用它們建構什麼。以下是關於此版本的詳細資訊,我們歡迎您在探索時提供意見反應。
發布流程
在我們進行 v3.0.0
的開發時,我們試圖透過正式化漸進式 beta 版本的意見反應進度,更實證地定義穩定版本的標準。如果沒有我們 應用程式回饋計畫合作夥伴,他們在 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: 需要 Node
v4.x
或更高版本才能使用electron
npm 模組 - [#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] 新增功能:加入 DIP 與螢幕座標轉換功能
注意: 在執行此版本後切換回舊版 Electron,您需要清除您的使用者資料目錄,以避免舊版本當機。您可以使用 console.log(app.getPath("userData"))
取得使用者資料目錄,或參閱 文件 以了解更多詳細資訊。
錯誤修正
- [#13397] 修正:
fs.statSyncNoException
擲出例外狀況的問題 - [#13476, #13452] 修正:載入包含 jquery 的網站時當機的問題
- [#14092] 修正:
net::ClientSocketHandle
解構函式中的當機問題 - [#14453] 修正:立即通知焦點變更,而不是在下一個 tick 通知
MacOS
- [#13220] 修正:允許在
<input file="type">
開啟檔案對話框中選取套件的問題 - [#12404] 修正:使用非同步對話框時阻擋主程序的問題
- [#12043] 修正:關聯選單點擊回呼
- [#12527] 修正:重複使用觸控列項目時的事件洩漏
- [#12352] 修正:系統匣標題當機
- [#12327] 修正:不可拖曳的區域
- [#12809] 修正:防止選單開啟時更新
- [#13162] 修正:系統匣圖示邊界不允許負值
- [#13085] 修正:醒目提示時系統匣標題未反轉
- [#12196] 修正:當
enable_run_as_node==false
時的 Mac 建置問題 - [#12157] 修正:具有活力的無邊框視窗的其他問題
- [#13326] 修正:在呼叫
app.removeAsDefaultProtocolClient
後將 mac 通訊協定設定為 none - [#13530] 修正:MAS 建置中不正確地使用私有 API
- [#13517] 修正:
tray.setContextMenu
當機 - [#14205] 修正:即使設定了
defaultId
,在對話框上按下 Esc 鍵現在也會關閉對話框
Linux
- [#12507] 修正:用於螢幕外視窗的
BrowserWindow.focus()
其他注意事項
- PDF 檢視器目前無法運作,但正在處理中,很快就會再次恢復功能
TextField
和Button
API 是實驗性的,因此預設關閉- 可以使用
enable_view_api
建置標誌啟用它們
- 可以使用
接下來的目標
Electron 團隊會持續致力於定義我們的流程,以便更快速、更順利地升級,同時尋求最終與 Chromium、Node 和 V8 的開發節奏保持一致。