Oznámení mohou být v dnešní době darem z nebes nebo prokletí naší existence. Každá aplikace, kterou si nainstalujete do telefonu, vyžaduje přístup k oznámením, stejně jako aplikace pro stolní počítače, a nyní máme rozhraní Web Notifications API společně s rozhraním Web Push API, pro případ, že byste v životě ještě neměli dostatek oznámení. Připomenutí schůzek z Kalendáře jsou vždy vítána (jinak bych zapomněl na každou událost), ale opravdu mě musí Wacky Mini Golf upozornit, že jsem 4 dny nehrál? Pravděpodobně ne.
Každopádně jsem přemýšlel o oznámeních a o tom, jak bych je mohl použít k zapamatování věcí, které jsem potřeboval udělat v určitou dobu během aktuálního dne; připomenout si, že se mám jít naobědvat, projet se na kole nebo jít vyzvednout syna ze školy v lichý den. Jako odborník na JavaScript jsem se rozhodl podívat se na vytváření oznámení pro Mac pomocí Node.js a rychle jsem našel svou odpověď:node-notifier
! Pojďme se podívat!
Vytvořte jednoduché oznámení
node-notifier
funguje na počítačích Mac i Windows. Oznámení se mohou pohybovat od velmi jednoduchých až po pokročilá, proto nejprve vytvořte velmi jednoduché oznámení:
const notifier = require('node-notifier'); // String notifier.notify('Go empty the dishwasher!'); // Object notifier.notify({ 'title': 'David Walsh Blog', 'subtitle': 'Daily Maintenance', 'message': 'Go approve comments in moderation!', 'icon': 'dwb-logo.png', 'contentImage': 'blog.png', 'sound': 'ding.mp3', 'wait': true });
Můžete uvést notifier
základy jako title
, message
a icon
, pak přejděte dále a přidejte obrázek obsahu, zvuk a dokonce ovládejte tlačítka, která se zobrazují v oznámení.
Pokročilá upozornění
Pomocí node-notifier
můžete vytvářet pokročilá oznámení s mnoha funkcemi , včetně možnosti odpovídat, ovládat popisky tlačítek oznámení a další. Následuje pokročilejší příklad:
const NotificationCenter = require('node-notifier').NotificationCenter; var notifier = new NotificationCenter({ withFallback: false, // Use Growl Fallback if <= 10.8 customPath: void 0 // Relative/Absolute path to binary if you want to use your own fork of terminal-notifier }); notifier.notify({ 'title': void 0, 'subtitle': void 0, 'message': 'Click "reply" to send a message back!', 'sound': false, // Case Sensitive string for location of sound file, or use one of macOS' native sounds (see below) 'icon': 'Terminal Icon', // Absolute Path to Triggering Icon 'contentImage': void 0, // Absolute Path to Attached Image (Content Image) 'open': void 0, // URL to open on Click 'wait': false, // Wait for User Action against Notification or times out. Same as timeout = 5 seconds // New in latest version. See `example/macInput.js` for usage timeout: 5, // Takes precedence over wait if both are defined. closeLabel: void 0, // String. Label for cancel button actions: void 0, // String | Array<String>. Action label or list of labels in case of dropdown dropdownLabel: void 0, // String. Label to be used if multiple actions reply: false // Boolean. If notification should take input. Value passed as third argument in callback and event emitter. }, function(error, response, metadata) { console.log(error, response, metadata); });
Zde je stručný přehled typů akcí, které mohou vaše oznámení provádět:
Události
node-notifier
je schopen odeslat click
a close
události – užitečné pro spouštění konkrétních akcí v závislosti na tom, jak uživatel s oznámením interaguje:
// Open the DWB website! notifier.on('click', (obj, options) => { const spawn = require('child_process').spawn; const cmd = spawn('open', ['https://davidwalsh.name']); }); notifier.on('close', (obj, options) => {});
Výše uvedený příklad mi umožňuje kliknout na oznámení a spustit svůj web; lze to také použít ke spouštění dalších rutin na svém počítači, samozřejmě to záleží jednoduše na tom, k čemu je oznámení určeno.
Můžete získat velmi podrobné informace o svých objektech a událostech oznámení na platformě, takže se nezapomeňte podívat na node-notifier
API, pokud chcete opravdu kopat hluboko. Nebo pokud jste rozumný člověk, možná vynechejte další oznámení ve svém životě!