Как заставить WebKit или IE вызывать ваше приложение (.NET) с HTML-страницы, открытой в браузере?
У меня есть приложение .NET, работающее в windows. Я хочу нажать на какой-то элемент страницы (button link flash app и т. д.), чтобы запустить мое приложение с некоторыми специальными параметрами. (Он должен работать не только в IE, но и в браузерах windows на основе WebKit) во время установки приложения мы предполагаем, что пользователь является администратором и работает под управлением Vista или Windows 7 или более поздней версии.
Итак, мой вопрос - Где взять примеры такого взаимодействия (с кодом конечно)?
Итак, как сделать браузер на основе WebKit или IE называйте ваш .Net приложения?
5 ответов
зарегистрировать пользовательский обработчик протокола URL. Затем вы можете указать url-адрес, используя ссылки и т. д.:
<a href="myapp://doSomething/>Click to run my app!</a>
Я могу подтвердить, что это работает во всех версиях Internet Explorer. Я также протестировал его в последних версиях Firefox (3.6) и Chrome (чья версия ускользает от меня). Chrome не позволяет вводить пользовательский протокол в адресную строку, но запускает приложения из ссылок с использованием пользовательских протоколов.
Если у вас есть Adobe Читатель установлен, протокол. К сожалению, SO не разрешает ссылки с использованием пользовательских протоколов, поэтому я не могу добавить пример здесь, я боюсь.
вы не можете иметь браузер на основе Webkit, чтобы открыть приложение напрямую. Ваша лучшая надежда (и то, что Apple делает, чтобы открыть iTunes Store), - это зарегистрировать приложение .NET для открытия определенных типов URL-адресов, используя ссылку, указывающую на URL-адрес этого типа.
например, если ваше приложение может открыть myapp://
URLs, вы можете использовать следующий заголовок HTTP:
Location: myapp://mysettings
или более обычная ссылка:
<a href="myapp://mysettings">Foo</a>
и тогда браузер будет позаботьтесь, чтобы открыть приложение, которое может обрабатывать myapp://
схема URL (в данном случае, ваше приложение).
Я бы предположил, что единственный способ сделать это-roundtripping на сервер. Веб-страница запускает что-то на сервере. Приложение также подключено к серверу. Я думаю, что, вероятно, неразумно делать это каким-либо другим способом. Если вы хотите действительно испачкаться, можно использовать LocalConnection Flash (который использует сопоставленный с памятью файл для связи) для общения с приложением .net. Шаля Даррон справился с этим (но не делится).
Если для этого требуется приложение, почему беспокоитесь о веб-странице?
вы можете зарегистрировать обработчик протокола, который указывает на ваше приложение, а затем иметь ссылку, указывающую на URL-адрес с этим протоколом и любые параметры, которые вам нужны.
учитывая, что приложение для запуска и браузер, оба работают на Windows, a зарегистрированного обработчика протокола - это лучший способ пойти, предполагая, что все интересные браузеры поддерживают его. Учитывая, что ссылка выше из документации MSDN на Разработка Internet Explorer, Я могу себе представить, что некоторые браузеры могут не захотеть поддерживать этот механизм.