Узел-звук уведомления 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.');
});