Electron菜鸟教程之Electron桌面环境集成
不同的操作系统在各自的桌面应用上提供了不同的特性。例如,在 windows 上应用曾经打开的文件会出现在任务栏的跳转列表,在 Mac 上,应用可以把自定义菜单放在鱼眼菜单上。 本章将会说明怎样使用 Electron APIs 把你的应用和桌面环境集成到一块。 最近文档 (Windows & OS X)Windows 和 OS X 提供获取最近文档列表的便捷方式,那就是打开跳转列表或者鱼眼菜单。 为了增加一个文件到最近文件列表,你可以使用 app.addRecentDocument API: var app = require('app'); app.addRecentDocument('/Users/USERNAME/Desktop/work.type'); 或者你也可以使用 app.clearRecentDocuments API 来清空最近文件列表。 app.clearRecentDocuments(); Windows 需注意为了这个特性在 Windows 上表现正常,你的应用需要被注册成为一种文件类型的句柄,否则,在你注册之前,文件不会出现在跳转列表。你可以在 Application Registration 里找到任何关于注册事宜的说明。 OS X 需注意当一个文件被最近文件列表请求时,app 模块里的 open-file 事件将会被发出。 自定义的鱼眼菜单(OS X)OS X 可以让开发者定制自己的菜单,通常会包含一些常用特性的快捷方式。 使用 app.dock.setMenu API 来设置你的菜单,这仅在 OS X 上可行: var app = require('app');var Menu = require('menu');var dockMenu = Menu.buildFromTemplate([ { label: 'New Window', click: function() { console.log('New Window'); } }, { label: 'New Window with Settings', submenu: [ { label: 'Basic' }, { label: 'Pro'} ]}, { label: 'New Command...'} ]); app.dock.setMenu(dockMenu); 用户任务(Windows)在 Windows,你可以特别定义跳转列表的 Tasks 目录的行为,引用 MSDN 的文档:
IE 的任务不同于 OS X 的鱼眼菜单,Windows 上的用户任务表现得更像一个快捷方式,比如当用户点击一个任务,一个程序将会被传入特定的参数并且运行。 你可以使用 app.setUserTasks API 来设置你的应用中的用户任务: var app = require('app'); app.setUserTasks([ { program: process.execPath, arguments: '--new-window', iconPath: process.execPath, iconIndex: 0, title: 'New Window', description: 'Create a new window' } ]); 调用 app.setUserTasks 并传入空数组就可以清除你的任务列表: app.setUserTasks([]); 当你的应用关闭时,用户任务会仍然会出现,在你的应用被卸载前,任务指定的图标和程序的路径必须是存在的。 缩略图工具栏在 Windows,你可以在任务栏上添加一个按钮来当作应用的缩略图工具栏。它将提供用户一种用户访问常用窗口的方式,并且不需要恢复或者激活窗口。 在 MSDN,它被如是说:
Windows Media Player 的缩略图工具栏你可以使用 BrowserWindow.setThumbarButtons 来设置你的应用的缩略图工具栏。 var BrowserWindow = require('browser-window');var path = require('path');var win = new BrowserWindow({ width: 800, height: 600}); win.setThumbarButtons([ { tooltip: "button1", icon: path.join(__dirname, 'button1.png'), click: function() { console.log("button2 clicked"); } }, { tooltip: "button2", icon: path.join(__dirname, 'button2.png'), flags:['enabled', 'dismissonclick'], click: function() { console.log("button2 clicked."); } } ]); 调用 BrowserWindow.setThumbarButtons 并传入空数组即可清空缩略图工具栏: win.setThumbarButtons([]); Unity launcher 快捷方式(Linux)在 Unity,你可以通过改变 .desktop 文件来增加自定义运行器的快捷方式,详情看 Adding shortcuts to a launcher。 Audacious 运行器的快捷方式:任务栏的进度条(Windows & Unity)在 Windows,进度条可以出现在一个任务栏按钮之上。这可以提供进度信息给用户而不需要用户切换应用窗口。 Unity DE 也具有同样的特性,在运行器上显示进度条。 在任务栏上的进度条:在 Unity 运行器上的进度条给一个窗口设置进度条,你可以调用 BrowserWindow.setProgressBar API: var window = new BrowserWindow({...});window.setProgressBar(0.5); 在 OS X,一个窗口可以设置它展示的文件,文件的图标可以出现在标题栏,当用户 Command-Click 或者 Control-Click 标题栏,文件路径弹窗将会出现。 展示文件弹窗菜单:你可以调用 BrowserWindow.setRepresentedFilename 和 BrowserWindow.setDocumentEdited APIs: var window = new BrowserWindow({...});window.setRepresentedFilename('/etc/passwd');window.setDocumentEdited(true); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |