3

Я могу настроить свое веб-приложение так, чтобы Chrome регистрировал пользовательский обработчик протокола «web +», чтобы он отображался в меню «Настройки» ->(Дополнительно)-> «Конфиденциальность» -> «Настройки содержимого» -> «Обработчики» -> «Управление обработчиками».

Тем не менее, он показывает сайт как "нет", и хотя мой сайт отображается в раскрывающемся меню, когда я выбираю свой сайт в этом раскрывающемся меню, Windows выдает мне сообщение «Нет установленных приложений, чтобы открыть этот тип ссылка (web+mycustomscheme)...Ищите приложение в Магазине ", и нажатие на сообщение Windows приводит к выпадающему списку с надписью" none "(и щелчки по ссылкам в моей пользовательской схеме не работают).

Как заставить его принять мой сайт в качестве обработчика?

Это прекрасно работает в Firefox, кстати.

1 ответ1

4

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

Ошибка здесь (https://bugs.chromium.org/p/chromium/issues/detail?id=560809) связана с запуском этих протоколов из омнибокса или из командной строки, но я также думаю, что это применимо, когда ссылка активируется через JavaScript (window.location или создание iframe с этим src).

Из того, что я могу сказать, это все еще нерешенная проблема.

Теперь - во второй части (где Windows говорит, что не знает, как обращаться с протоколом, и предлагает App Store). Вы должны зарегистрировать свой протокол в Windows через реестр. Это так же просто, как добавление специально отформатированного ключа в HKEY_CURRENT_USER\Software\Classes, как описано здесь: https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

Примечание. Если вы будете следовать инструкциям на этой странице, вы будете регистрировать обработчик протокола для всех пользователей этого компьютера, и приложению, выполняющему регистрацию, потребуется повышение прав (Admin). Если вы используете HKEY_CURRENT_USER\Software\Classes вместо HKEY_CLASSES_ROOT, ваша регистрация все равно будет отображаться в HKEY_CLASSES_ROOT, но для ее создания не потребуется администратор, но она будет работать только для текущего пользователя. Так что - выбери свой яд на этом.

HKEY_CLASSES_ROOT - это вид, состоящий из всех \Software \Classes из HLEY_CURRENT_USER в сочетании с HKEY_LOCAL_MACHINE. Я верю, но не подтвердил, что HKCU переопределяет HKLM, но если вы попытаетесь создать ключ непосредственно в HKEY_CLASSES_ROOT, он попытается записать его в HKLM, предоставляя вам доступ, в котором вам отказано, если у вас нет прав.

Надеюсь, это поможет. Удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .