Как заставить WebKit или IE вызывать ваше приложение (.NET) со страницы HTML, открытой в браузере? - PullRequest
7 голосов
/ 12 марта 2010

У меня приложение .NET, работающее на Windows. Я хочу щелкнуть по некоторому элементу страницы (кнопка, ссылка, флэш-приложение и т. Д.), Чтобы запустить мое приложение с некоторыми специальными параметрами. (Он должен работать не только в IE, но и в браузерах Windows на основе WebKit). При установке приложения мы предполагаем, что пользователь является администратором и работает под управлением Vista, Windows 7 или более поздней версии.

Итак, мой вопрос - где взять примеры такого взаимодействия (с источником СО, конечно)?

Итак, как заставить браузер на основе WebKit или IE вызывать ваше .Net приложение?

Ответы [ 5 ]

11 голосов
/ 12 марта 2010

Зарегистрировать пользовательский обработчик протокола URL . Затем вы можете указать URL, используя ссылки и т.д .:

<a href="myapp://doSomething/>Click to run my app!</a>

<ч /> Я могу подтвердить, что это работает во всех версиях Internet Explorer. Я также протестировал его в последних версиях Firefox (3.6) и Chrome (чья версия ускользает от меня). Chrome не позволяет вводить пользовательский протокол в адресную строку, но запускает приложения по ссылкам с использованием пользовательских протоколов.

Если у вас установлен Adobe Reader, протокол acrobat:// зарегистрирован. К сожалению, SO не разрешает ссылки с использованием пользовательских протоколов, поэтому я не могу добавить пример здесь, я боюсь.

3 голосов
/ 12 марта 2010

У вас не может быть браузера на основе Webkit для непосредственного открытия приложения. Ваша лучшая надежда (и то, что Apple делает для открытия iTunes Store) будет состоять в том, чтобы ваше приложение .NET регистрировалось для открытия определенных типов URL-адресов, используя ссылку, которая указывает на URL-адрес этого типа.

Например, если ваше приложение может открывать URL-адреса myapp://, вы можете использовать следующий HTTP-заголовок:

Location: myapp://mysettings

или более условная ссылка:

<a href="myapp://mysettings">Foo</a>

И тогда браузер позаботится об открытии приложения, которое может обрабатывать myapp:// схему URL (в данном случае, ваше приложение).

0 голосов
/ 12 марта 2010

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

0 голосов
/ 12 марта 2010

Я бы предположил, что единственный способ сделать это - возврат на сервер. Веб-страница вызывает что-то на сервере. Приложение также подключено к серверу. Я думаю, что это неразумно делать по-другому. Если вы хотите сильно испачкаться, вы можете использовать LocalConnection (который использует для связи файл памяти), чтобы общаться с приложением .net. Darron Schall управлял им (но не делится).

Если для этого требуется приложение, зачем использовать веб-страницу?

0 голосов
/ 12 марта 2010

Учитывая, что приложение и браузер работают под Windows, зарегистрированный обработчик протокола - лучший путь, при условии, что все интересные браузеры его поддерживают, Учитывая, что ссылка выше взята из документации MSDN по Internet Explorer Development , я могу представить, что некоторые браузеры могут не захотеть поддерживать этот механизм.

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