2016-01-25 6 views
15

में टर्मिनल आइकन निकालें मैं खोल में नोटिफिकेशन दिखाने के लिए https://github.com/mikaelbr/node-notifier पैकेज का उपयोग कर रहा हूं। आप एक टर्मिनल आइकन नाम से पहले आ रहा है देख सकते हैंनोड नोटिफ़ायर

enter image description here

:

var notifier = require('node-notifier'); 
var path = require('path'); 

notifier.notify({ 
    title: 'My awesome title', 
    message: 'Hello from node, Mr. User!', 
    icon: path.join(__dirname, 'coulson.jpg'), // absolute path (not balloons) 
    sound: true, // Only Notification Center or Windows Toasters 
    wait: true // wait with callback until user action is taken on notification 
}, function (err, response) { 
    // response is response from notification 
}); 

notifier.on('click', function (notifierObject, options) { 
    // Happens if `wait: true` and user clicks notification 
}); 

notifier.on('timeout', function (notifierObject, options) { 
    // Happens if `wait: true` and notification closes 
}); 

अधिसूचना इस तरह आता है:

यह मेरा कोड है।

क्या आप मेरी मदद कर सकते हैं कि उस आइकन को कैसे निकालें?

उत्तर

8

यह node-notifier के साथ ज्ञात समस्या है।

issue #71 से:

mikaelbr:

नहीं है, मुझे डर है कि है कर रहा हूँ कैसे अधिसूचना काम करते हैं, के रूप में यह टर्मिनल कि संदेश की शुरुआत करता है। इससे बचने का एकमात्र तरीका अपने कस्टम टर्मिनल-नोटिफ़ायर का उपयोग करना है जहां टर्मिनल आइकन आपके लिए स्वैप किया गया है। यह एक बड़ा काम नहीं है, और आप आसानी से अधिसूचना केंद्र संवाददाता के लिए set customPath कर सकते हैं।

kurisubrooks:

इसका कारण यह है ओएस एक्स काम में जिस तरह की सूचनाओं का होता है। अधिसूचना रेफरिंग ऐप आइकन दिखाएगी, और क्योंकि हम नोटिफिकेशन पुश करने के लिए terminal-notifier का उपयोग कर रहे हैं, हमारे पास टर्मिनल-नोटिफ़ायर का आइकन है।

इसके आसपास काम करने के लिए, आपको टर्मिनल-नोटिफ़ायर को अपने स्वयं के app.icns के साथ संकलित करने की आवश्यकता होगी। स्रोत डाउनलोड करें, एक्सकोड में अपने आप के साथ AppIcon बंडल को बदलें, टर्मिनल-नोटिफ़ायर को पुन: संकलित करें और इसे नोड-नोटिफ़ायर में पॉप करें। (/node-notifier/vendor/terminal-notifier.app)

अब आपके पास नोड-नोटिफ़ायर के अंदर अपना स्वयं का टर्मिनल-नोटिफ़ायर है, तो अपने ओएस एक्स अधिसूचना केंद्र कोड से सभी आइकन संदर्भ हटाएं, और अधिसूचना चलाएं जैसे कि इसमें कोई आइकन नहीं है। यदि आपकी सूचनाओं में पुराना ऐप आइकन दिख रहा है, तो आपको अपना आइकन कैश साफ़ करना होगा। mikaelb से (गूगल कैसे यह करने के लिए)

एक अन्य मुल्यवान टिप्पणी:

यह सही है। लेकिन ध्यान रखें, अधिसूचना समाप्त होने की प्रतीक्षा करने के लिए विकल्प जोड़ने के लिए नोड-नोटिफ़ायर टर्मिनल-नोटिफ़ायर (github.com/mikaelbr/terminal-notifier) का एक कांटा का उपयोग करता है, इसलिए इसका उपयोग अपना स्वयं का आइकन जोड़ने के लिए किया जाना चाहिए। ऐसा करने का एक आसान तरीका विक्रेता-फ़ोल्डर से कॉपी/पेस्ट करना है और अपने खुद के विक्रेता को इंगित करने के लिए customPath का उपयोग करना है।

+1

यह सही है। लेकिन ध्यान रखें, अधिसूचना समाप्त होने की प्रतीक्षा करने के लिए विकल्प जोड़ने के लिए नोड-नोटिफ़ायर टर्मिनल-नोटिफ़ायर (https://github.com/mikaelbr/terminal-notifier) ​​का एक कांटा उपयोग करता है, इसलिए इसका उपयोग अपना आइकन जोड़ने के लिए किया जाना चाहिए । ऐसा करने का एक आसान तरीका विक्रेता-फ़ोल्डर से प्रतिलिपि बनाना/पेस्ट करना और अपने स्वयं के विक्रेता को इंगित करने के लिए 'कस्टमपाथ' का उपयोग करना है। – mikaelb

+0

@mikaelb धन्यवाद। मैंने आपकी टिप्पणी को उत्तर में शामिल किया है, इसलिए यह खो नहीं जाएगा। –

1

मैंने @ एलेक्ज़ेंडर एम के कदमों की कोशिश की लेकिन यह मेरे लिए काम नहीं कर रहा था। शायद मैं काफी कदमों को समझ नहीं पाया। यहां बताया गया है कि यह मेरे लिए कैसे काम करता है।

मैंने https://github.com/mikaelbr/terminal-notifier पर क्लोन किया। फिर एक्सकोड के साथ प्रोजेक्ट खोला और Terminal.icns फ़ाइल हटा दी और इसे मेरे कस्टम आइकन Myicon.icns से बदल दिया।

फिर Myicon पर सेट करके terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist संपादित किया गया।

ऐसा करने के बाद, बस परियोजना का निर्माण काम नहीं किया। मुझे build version और build identifier (कोई भी नया मान करेगा) see this के मानों को बदलना पड़ा।

बाद में मैं सिर्फ xcode के साथ इस परियोजना का निर्माण किया और उसके बाद की प्रतिलिपि बनाई बनाया .app फ़ाइल मेरी इलेक्ट्रॉन परियोजना के लिए (आप xcode Products > right click the file > show in finder से परियोजना के Products निर्देशिका पर क्लिक करके इसे पा सकते हैं)

जैसे अपने अंतिम पथ लग सकता है इस तरह। electron-project/vendor/terminal-notifier.app

तब मैं set customPath @ एलेक्ज़ेंडर एम के सुझाव के अनुसार।

यहाँ मेरा

var notifier = new NotificationCenter({ customPath: 'vendor/terminal-notifier.app/Contents/MacOS/terminal-notifier' });

की तरह दिखाई देता है और फिर इसे काम किया है!