微軟公開預覽Node.js動態Windows Runtime(WinRT)投影,讓開發框架Electron應用程式及一般Node.js程式,可直接透過JavaScript或TypeScript呼叫支援的Windows原生應用程式介面(API)。開發者不必再為每項功能另外撰寫C++或C#銜接程式,也不必自行維護原生模組。
語言投影(Language Projection)是將Windows原生功能轉換成特定程式語言可使用的介面。Windows原本已支援C++、C#、Rust及Python,現在則把相同機制帶到Node.js。工具會讀取Windows提供的API說明資料,自動產生JavaScript介面程式碼及TypeScript型別資訊,再由共用執行環境處理實際呼叫。
當相容的Windows API中繼資料更新時,開發者只需重新產生介面程式碼,不必重新編譯原生模組或等待個別功能的人工封裝。相關設定由WinApp CLI統一處理,包括Windows SDK、應用程式資訊清單、開發階段的套件識別及介面產生流程。
目前支援範圍以非圖形介面功能為主,包括通知、檔案與資料夾選取、儲存、影像解碼、剪貼簿、網路、感測器及密碼學,也涵蓋文字生成、摘要、改寫、影像描述與文字辨識等裝置端AI功能。同時也能套用於符合WinRT規範的自訂元件。
微軟示範Electron建立具有進度列的Windows原生通知。Windows App SDK通知也支援操作按鈕與輸入欄位。另一項範例則是在支援的Copilot+ PC上呼叫本機語言模型Phi Silica進行文字摘要。Phi Silica須由應用程式宣告受限制的系統AI模型權限(systemAIModels),且只適用於支援的裝置。
Node.js動態WinRT投影不只適用於Electron,一般Node.js程式也能使用。目前仍處於公開預覽,主要支援AI、儲存、通知及網路等非UI功能。WinUI等UI套件預設不納入介面產生範圍,WebView2也不在產生的投影範圍內。微軟已將WinApp CLI及dynwinrt程式碼公開於GitHub,供開發者測試與回報問題。
Comments (0)