Ответ 1
Его интересная идея. Я не думаю, что в настоящее время существует решение для платформы node.js. Я встретил эту тему людей, просящих одно и то же:
https://github.com/rogerwang/node-webkit/issues/951
Теперь Electron поддерживает его с помощью app.setAsDefaultProtocolClient
API (начиная с v0.37.4) для macOS и Windows.
Было бы ужасно сложно написать библиотеку, чтобы сделать это.
для Windows
На стороне Windows вам необходимо зарегистрировать приложение в качестве приложения, которое обрабатывает эту схему URI.
Вам нужно будет настроить запись реестра для вашего приложения:
HKEY_CLASSES_ROOT alert (Default) = "URL:Alert Protocol" URL Protocol = "" DefaultIcon (Default) = "alert.exe,1" shell open command (Default) = "C:\Program Files\Alert\alert.exe" "%1"
Затем, когда ваше приложение запускается окнами, вы должны иметь возможность видеть аргументы в process.argv[]
. Убедитесь, что вы запускаете оболочку для запуска node, а не только ваше приложение напрямую.
Обратите внимание, что для этого требуются привилегии администратора и устанавливает обработчик в системном масштабе. Чтобы сделать это на пользователя, вы можете использовать HKEY_CURRENT_USER\Software\Classes
вместо этого, поскольку реализация Electron делает это.
Apple:
Процитированная статья "OS X" в комментарии github фактически предназначена для iOS. Я бы посмотрел следующее руководство по программированию для информации о регистрации приложения для обработки схемы URL:
Итак, вам нужно создать службу запуска и заполнить файл .plist с помощью CFBundleURLTypes
, это поле будет массивом и должно быть заполнено только именем протокола i.e. http
Следующий вопрос о суперпользователе имеет лучшее решение, но для каждого пользователя.
"Файл, который вы ищете, это ~/Library/Preferences/com.apple.LaunchServices.plist.
Он содержит массив, называемый LSHandlers, а дети Dictionary, которые определяют LSHandlerURLScheme, могут быть соответствующим образом изменены с помощью LSHandlerRole. "
Linux:
Из того, что я могу сказать, есть несколько способов сделать это в Linux (сюрприз?)
В Gnome есть инструмент, который позволит вам зарегистрировать обработчик URL w3-архивы
gconftool-2 -t string -s /desktop/gnome/url-handlers/tel/command "bin/vonage-call %s"
gconftool-2 -s /desktop/gnome/url-handlers/tel/needs_terminal false -t bool
gconftool-2 -t bool -s /desktop/gnome/url-handlers/tel/enabled true
Некоторые из менеджеров меньшего веса выглядят так, что они позволяют создавать поддельные типы mime и регистрировать их как обработчики протокола URI.
"Поддельные типы mime создаются для URI с различной схемой: применение/х-XDG-от протокола Приложения, поддерживающие определенный протокол URI, могут добавить поддельный тип mime к своему типу MimeType в своих файлах ввода рабочего стола. Таким образом, легко найти все приложения, установленные в системе, поддерживающей схему URI, просмотрев файл mimeinfo.cache. Снова файл defaults.list может быть использован для указания программы по умолчанию для специализированного типа URI. wiki.lxde.org
KDE также поддерживает собственный метод обработки обработчиков URL-адресов:
Создайте файл: $KDEDIR/share/services/your.protocol
и заполните его соответствующими данными:
[Protocol] exec=/path/to/player "%u" protocol=lastfm input=none output=none helper=true listing= reading=false writing=false makedir=false deleting=false
из last.fm форумы всех мест
Надеюсь, что это поможет.