Я изучал это "недавно"; -).
Это встроенная функция: feat: пункт меню "Последние документы" # 11166
{
label: 'Open Recent',
role: 'recentdocuments',
submenu: [
{
label: 'Clear Recent',
role: 'clearrecentdocuments'
}
]
},
И app.addRecentDocument (путь) и app.clearRecentDocuments () . Electron 8 добавляет эту функцию: dontAddToRecent к Windows showOpenDialog
Мне удалось заставить его работать на macOS
, хотя я не смог понять, как это сделать Регистрация приложения еще вещь (через electron-builder
, я полагаю), которая необходима для того, чтобы она работала на Windows
.
Я также видел фрагмент кода ниже от здесь но у меня еще не было возможности проверить это. Кроме того, имейте в виду, что * * * * * * * * * * * * * * * * * * *
function updateRecents(path, clear = false) {
const currentMenu = Menu.getApplicationMenu();
if (!currentMenu) return;
const recents = getItemByKey(currentMenu, 'recents');
if (!recents) return;
// Clear menu if requested.
if (clear) {
config.set('recentDocuments', []);
recents.submenu.clear();
recents.submenu.append(new MenuItem({ key: 'null', label: 'No Recent Documents', enabled: false }));
Menu.setApplicationMenu(currentMenu);
return;
}
const item = new MenuItem({
label: require('path').basename(path),
click: () => this.open(path)
});
// If first recent item clear empty placeholder.
if (recents.submenu.items[0].key == 'null') {
recents.submenu.clear();
recents.submenu.append(item);
}
// Limit to maximum 10 recents.
else if (recents.submenu.items.length >= 10) {
const items = recents.submenu.items;
recents.submenu.clear();
items.push(item);
items.slice(10).forEach((i) => recents.submenu.append(i));
}
// Otherwise just add item.
else recents.submenu.append(item);
// Update application menu.
Menu.setApplicationMenu(currentMenu);
}
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1030 ''.