Запустите кнопку панели инструментов браузера, используя jquery или javascript - PullRequest
0 голосов
/ 07 февраля 2019

Я добавил расширение Chrome под названием «Кнопка внешнего приложения».

Что мы можем сделать, так это то, что мы можем добавить внешнее приложение, такое как sublime.exe, vscode.exe и т. Д., На нашу панель инструментов браузера и по щелчку, оно открываетсяexe.

Таким образом, с помощью jquery или javascript возможно ли осуществить нажатие этой кнопки?

Моя главная цель - заставить это приложение работать с использованием кода jquery или javascript на веб-странице.

1 Ответ

0 голосов
/ 07 февраля 2019
  1. Как для расширения, так и для веб-страницы это невозможно сделать самостоятельно, без установки дополнительного программного обеспечения.Вы находитесь в «песочнице» в том, что вы можете делать на компьютере из своего кода, и ограничены тем, что предоставляют браузеры API.

  2. Чтобы вызвать приложение, внешнее по отношению к браузеру, расширение должноиспользуйте что-то под названием Native Host .Вот почему для работы этого расширения требуется установка чего-то дополнительного.

    Обычные веб-страницы не могут использовать собственные хосты, поэтому маршрут закрыт.

  3. Можем ли мы сделатьэто из кода веб-страницы, если мы разрешаем установить расширение?

    Да, расширение, которое взаимодействует с веб-страницей (через скрипты содержимого или механизм externally_connectable), может разрешать веб-сайтам запускать код расширения, который запускает собственный хосткод, который делает то, что вы хотите.

    Вы не можете сделать это с произвольными сторонними расширениями, поэтому вам нужно написать свой собственный.

  4. Можете ли высделать это в любом случае, без расширения, если мы разрешим установку дополнительного компонента?

    В принципе да.Типичный способ сделать это - установить вспомогательную программу, которая открывает веб-сервер на локальном порту, например, localhost:12345.Тогда любой контекст JavaScript может попытаться подключиться к нему.

    На практике возникают сложности.

    • Как вы защищаете свой локальный сервер от произвольных подключений?Вам понадобится некоторый предварительный секрет, чтобы не позволить другим сайтам или другому программному обеспечению на локальном компьютере злоупотреблять этим.

    • Подключение к доменам, отличным от HTTPS, с сайтов HTTPSпроблема.Создание сертификата для localhost, которому доверяет браузер, также является проблемой (которая имеет последствия для безопасности, если ее обойти).Это усложняет установку дополнительного компонента.

  5. Еще одна идея: ваш дополнительный компонент может зарегистрироваться в качестве обработчика протокола.Например, вы можете добавить протокол launch-app: и сообщить системе, что ваше вспомогательное приложение должно быть вызвано.Пример: Steam использует этот подход для связи со своим клиентом из браузера (например, для установки / запуска игры).

    Обратите внимание, что это односторонняя связь, но для варианта использования «Запустить программу» этодостаточно.

    Тогда вы можете просто предоставить ссылки на этот специальный протокол, чтобы сделать это.Опять же, это требует установки дополнительного компонента в целевой системе.Вы не можете сделать это только с помощью браузера.

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

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