Узел-звук уведомления webkit

Я сделал функцию для моего приложения node-webkit для запуска уведомления OS X. Он работает отлично, но мне интересно, могу ли я установить систему или пользовательский звук вместо классического звука iPhone boing?

Я просмотрел официальную документацию API уведомлений от Mozzila (https://developer.mozilla.org/en-US/docs/Web/API/notification) и нет звуковой опции, однако, возможно, node-webkit имплантировал эту функцию (не могу представить, что они этого не сделали), но если они did, я не могу найти никаких документов об этом.

Итак, мой вопрос: есть ли звуковая опция для уведомлений в node-webkit?

function notif(title ,tekst, url){
    var notice = new Notification(title, {
        body: tekst
    });

    notice.onshow = function(evt) {
        setTimeout(function(){notice.close()}, 5000);
    }

    notice.onclick = function(evt) {
        gui.Shell.openExternal(url);
        setTimeout(function(){notice.close()}, 1000);
    };
}

1 ответов


нежелательный звук iPhone был исправлен / удален в недавний узел-webkit pull request и выпущен.

что касается генерации моих собственных звуков, я использую обертку вокруг объекта raw notifications, чтобы всякий раз, когда я вызываю команду notification show, Я также воспроизводил звук, если это необходимо.

/**
 * Use composition to expand capabilities of Notifications feature.
 */
function NotificationWrapper(appIcon, title, description, soundFile) {

    /**
     * A path to a sound file, like /sounds/notification.wav
     */        
    function playSound(soundFile) {
        if(soundFile === undefined) return; 
        var audio = document.createElement('audio');
        audio.src = soundFile;
        audio.play();
        audio = undefined;
    }

    /**
     * Show the notification here.
     */
    var notification = new window.Notification(title, {
        body: description,
        icon: appIcon
    });

    /**
     * Play the sound.
     */
    playSound(soundFile);

    /**
     * Return notification object to controller so we can bind click events.
     */
    return notification;
}

чтобы использовать его, мы просто вызываем его с помощью нового ключевого слова:

var myNotification = new NotificationWrapper(
    '#',    // image icon path goes here
    'node-webkit is awesome',
    'Especially now that I can use my own sounds',
    '/sounds/notification.wav'
);

myNotification.addEventListener('click', function() { 
    console.log('You clicked the notification.');
});