Как отправить реальные сообщения growl с javascript?

можно ли отправлять уведомления growl на компьютер пользователя из веб-приложения с помощью javascript? Это будет только в приложении интрасети, поэтому безопасность не является серьезной проблемой. Кроме того, он будет ограничен только пользователями Mac с Safari или Firefox.

спасибо.

9 ответов


рычание есть сетевой интерфейс, и HTML 5 имеет Веб-Сокеты, поэтому теоретически это может быть возможно полностью в JavaScript (когда реализованы веб-сокеты). Более реалистично, если ваш веб-сервер подключен к той же сети, что и ваши клиенты (т. е. может видеть и подключаться к их отдельным IP-адресам), вы можете сделать обратный вызов стиля AJAX к скрипту на сервере, который сделает сетевой запрос.


Google Gears есть экспериментальная поддержка для уведомлений Growl.


жидкость, генератор браузера для конкретного сайта для Mac,предоставляет API уведомлений JavaScript Growl [1]:

window.fluid.showGrowlNotification({
    title: "title", 
    description: "description", 
    priority: 1, 
    sticky: false,
    identifier: "foo",
    onclick: callbackFunc,
    icon: imgEl // or URL string
})

соответствующий источник на странице разработчика жидкости.

вы можете искать примеры реального мира вuserscripts.org.

одним из недостатков этого подхода является, конечно, вы должны заставить своих пользователей использовать браузер Fluid при доступе к интрасети приложение.

настройка моста, как предлагает Адам, имеет то преимущество, что требует минимальных усилий от пользователей.


Я попытался придумать решение для отправки сообщения growl с javascript, к сожалению, не повезло. Я подытожу свои исследования для дальнейшего использования.

возможные решения исследованы:

  • вспышка - из-за того, что flash имеет доступ к обычным соединениям сокетов, казалось хорошей идеей придумать фрагмент flash, который будет предоставлять некоторый API javascript через ExternalInterface. Flash-объекта из сервера сайт (удаленное местоположение) и попробуйте связаться с локальным интерфейсом growl, который вызовет проверку файла междоменной политики. Это включает в себя связь, которая пока не понимается (поддерживается) службой growl, поэтому соединение не удастся. в качестве дополнительной информации: growl для windows поддерживал клиентов на основе flash, но, судя по этому последние обсуждения его сломан в текущей версии).

  • WebSockets - подобно флэш-основе идея, websockets требуют первоначального обмена парой http-запросов / ответов, прежде чем соединение будет обновлено до обычного двухстороннего сокета. Как и в Flash-подходе, это сработает, но потребует growl для поддержки этой первоначальной связи на основе http до подключения сокета. Growl не поддерживает это сейчас, некоторые говорят, что это может быть, как только спецификация growl будет окончательной.

  • Google Gears - не проверял, но компания Google Gears еще были прекращены по состоянию на март 2011 года, вероятно, возникают проблемы с поддержкой Firefox в версии >= 4.


сообщение http://ajaxian.com/archives/growls-for-windows-and-a-web-notification-api содержит ссылку на рычание.js, который был написан для работы с Growl для Windows. Я недостаточно изучил его, чтобы знать, будет ли подобный подход работать с Growl.


для клиентских методов я пробовал следующее:

при использовании рычание для Windows или Growl версии 1.3+, вы можете использовать двоичный файл Flash, как показано в Это демо-страницы

существует также расширение chrome, сделанное GfW, которое использует двоичный файл как NPAPI изначально. GrowlChrome
Они основаны на протоколе GNTP, который был разработан GfW, и оригинальный Growl (для Mac) прогнозируемый принял его из версии 1.3

для версии 1.2.x, я нашел другое chrome-расширение, которое работает:Twitter Notifier и Growl Notifier для Google Play . Эти расширения основаны на JSGrowl

ссылки


вы также можете попробовать Gritter, " похожее на рычание уведомление для jQuery."


другой плакат упомянул об этом, но вы определенно можете использовать Javascript (с небольшой помощью Flash, но вам не нужно возиться с этой частью), чтобы отправлять уведомления для Growl, запущенного локально. Вот тестовая страница, чтобы попробовать его, ничего не настраивая:http://www.growlforwindows.com/gfw/examples/js/

обратите внимание, что в настоящее время это работает только в Windows. Как отмечалось ранее, поддержка Flash-подключений в версии Mac в настоящее время поддерживается сломанный.

в Windows вы также можете использовать WebSockets, и вот аналогичная тестовая страница:http://www.growlforwindows.com/gfw/examples/websocket/

обратите внимание, что это тоже в настоящее время не реализовано в Growl на Mac, поэтому, если вы нацелены на пользователей Mac (что похоже на вас), они, вероятно, не помогут. Просто хотел отметить, что Javascript и WebSockets являются возможностями после того, как поддержка полностью добавлена в клиент OSX.


Если у ваших пользователей есть flash, вы можете взять мост javascript-flash-growl из здесь. Вы всегда можете проверить сценарий внутри вспышки с чем-то вроде JPEXS.

Я лично успешно использовал его и jQuery для установки пользовательских уведомлений для себя использование mediawiki и использование tampermonkey / greasemonkey. Единственные проблемы возникают, если Flash заблокирован/запрещен/не установлен, или когда флеш падает.