Electron 最近的文件

2023-02-16 17:15 更新

概覽?

Windows 和 macOS 分別通過打開跳轉列表和dock菜單使應用程序能夠快速的訪問最近打開的文檔列表。

JumpList:


應用 dock 菜單


示例?

管理最近的文檔

 main.js index.html 
const { app, BrowserWindow } = require('electron')
const fs = require('fs')
const path = require('path')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600
  })

  win.loadFile('index.html')
}

const fileName = 'recently-used.md'
fs.writeFile(fileName, 'Lorem Ipsum', () => {
  app.addRecentDocument(path.join(__dirname, fileName))
})

app.whenReady().then(createWindow)

app.on('window-all-closed', () => {
  app.clearRecentDocuments()
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow()
  }
})
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Recent Documents</title>
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
    <h1>Recent Documents</h1>
    <p>
        Right click on the app icon to see recent documents.
        You should see `recently-used.md` added to the list of recent files
    </p>
</body>
</html>

DOCS/FIDDLES/FEATURES/RECENT-DOCUMENTS (22.0.3)

Open in Fiddle

添加最近的文檔?

若要增加一個文件到最近文件列表,你可以使用 app.addRecentDocument API.

啟動 Electron 應用程序后,右鍵點擊應用程序圖標。 在本指南中,本項是位于項目根目錄下的 Markdown 文件: 您應該可以看到添加到最近文件列表中的 recently-used.md :


清除最近文檔列表?

若要清空最近文件列表,你可以使用 app.clearRecentDocuments API. 在此指南中,一旦所有窗口都關閉,文件列表就會被清除。

更多信息?

Windows 注意事項?

若要在 Windows 上使用此功能,您的應用程序必須注冊為這類文件的處理程序。 否則,文件將不會在跳轉列表中出現(xiàn)。 你可以在 Application Registration 里找到所有關于注冊事宜的說明。

當用戶點擊“跳轉列表”上的一個文件時,系統(tǒng)會啟動一個新的應用程序的實例 ,而文件的路徑將作為一個命令行參數(shù)被傳入這個實例。

macOS 注意事項?

將"最近文檔列表"添加到應用程序菜單?

您可以添加菜單項以訪問和清除最近的文檔,方法是在菜單模板中添加以下代碼片段:

{
  "submenu":[
    {
      "label":"Open Recent",
      "role":"recentdocuments",
      "submenu":[
        {
          "label":"Clear Recent",
          "role":"clearrecentdocuments"
        }
      ]
    }
  ]
}

請確保在 'ready'事件后添加應用菜單而不是之前,否則菜單項將被禁用:

const { app, Menu } = require('electron')

const template = [
  // 這里是菜單模版
]
const menu = Menu.buildFromTemplate(template)

app.whenReady().then(() => {
  Menu.setApplicationMenu(menu)
})


從 "最近文檔" 菜單中請求文件時, 將為其發(fā)出 app 模塊的 open-file 事件。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號