для первой проблемы (получение Chrome для регистрации вашего приложения с помощью пользовательского протокола), на основе моей недавней работы, пытающейся активных внешних URL-адресов пользовательского протокола, это то, что Chrome все еще не очень хорошо обрабатывает.
ошибка здесь (https://bugs.chromium.org/p/chromium/issues/detail?id=560809) связано с запуском этих протоколов из омнибокса или командной строки, но я также думаю, что это применимо, когда ссылка активируется через javascript (окно.расположение или создание iframe с этим src).
из того, что я могу сказать, это все еще нерешенная проблема.
теперь - во второй части (где Windows говорит, что не знает, как обращаться с протоколом и предлагает App Store). Вы должны зарегистрировать свой протокол в Windows через реестр. Это так же просто, как добавление специально отформатированного ключа в HKEY_CURRENT_USER\Software\Classes, как описано здесь: https://msdn.microsoft.com/en-us/library/aa767914(В=и 85).аспн
Примечание. Если вы будете следовать инструкциям на этой странице, вы зарегистрируете обработчик протокола для всех пользователей этой машины, а приложение, выполняющее регистрацию, потребует повышения прав (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, предоставив вам доступ запрещен, если у вас нет прав.
надеюсь, это поможет. Удача.
отвечен J. Brad Harris 2023-05-10 05:07