Проверьте, зарегистрирован ли пользовательский URI

#javascript #uri #microsoft-edge

#javascript #uri #microsoft-edge

Вопрос:

У меня есть эта проблема, когда у меня есть небольшая исполняемая программа, которая устанавливается на клиентский компьютер и затем регистрируется в пользовательской схеме URI customUri:X

Однако в настоящее время я все равно не могу найти, чтобы проверить, является ли эта схема uri действительной и что исполняемый файл установлен с javascript на стороне клиента. Следует отметить, что в моем приложении работает только браузер Edge на основе Chromium, поэтому решения должны быть совместимы для этого.

Я застреваю, когда браузер выдает запрос «Этот веб-сайт пытается открыть приложение Y». Здесь клиент может нажать OK (и, возможно, установить флажок «делать это всегда») или Отменить. Это приглашение — это то, что разрушает мои решения по таймауту, потому что оно не блокирует выполнение веб-сайта.

Что мне нужно, так это проверить, запущена ли программа с использованием пользовательского uri, и если это не так, мне нужно перенаправить клиентов на мою страницу загрузки для установки на указанный исполняемый файл.

Что я пробовал:

  • Установите время ожидания для перенаправления на страницу загрузки после изменения document.location = 'customUri:X'
  • Установите логическое значение, если произошла ошибка, а затем используйте тайм-аут для проверки этого логического значения

Есть ли у вас какие-либо идеи о том, как этого можно достичь с помощью Javascript в браузере Edge на основе Chromium?

Я надеюсь, что вопрос имеет смысл.

Комментарии:

1. Я могу воспроизвести вашу проблему в своем браузере Edge. И поведение такое же в Chrome. Приглашение не может быть обнаружено в JavaScript, поэтому я думаю, что вы не можете проверить, действителен ли пользовательский uri с помощью JavaScript. В этой ситуации, я думаю, вы можете использовать только некоторый внутренний код, чтобы проверить, открыта ли программа или правильно ли установлена схема uri в реестре.

2. Спасибо за ваш ответ. Проблема в том, что мое приложение установлено на удаленном сервере, где к нему подключаются клиенты, и из-за этого я не могу использовать какой-либо внутренний код или проверки реестра, потому что все должно обрабатываться на стороне клиента с помощью javascript… Если выполнить эту проверку невозможно, мне нужно будет найти другое решение…

3. Я понятия не имею о других способах проверить это в javascript. Давайте подождем и посмотрим, появятся ли у других участников сообщества какие-нибудь хорошие идеи.