Мне пришлось удалить свой предыдущий ответ, предлагая использовать объявление переменной при открытии ссылки, что приведет к появлению нового окна, содержащего URL-адрес в адресной строке, но фактически не получающего к нему доступа.
Я бы предложил, чтобы этоявляется функцией безопасности Google Chrome, отказывающейся в доступе к протоколам, отличным от http, https, ftp и file
К сожалению, я не смог найти это в официальной документации, однако вы обнаружите, что с помощью URL () для созданияместоположение, вы получите ожидаемый результат
let newLocation = new URL('tryme://helloworld/XXX/VGhpcyBpcyBhIHRlc3QgdXJs==')
возвращение
{
...
protocol: "tryme:"
pathname: "//mytest.com"
...
}
Однако Google Chrome откажется обновить
window.location = newLocation
было бы неплохо, если бы он вернулсообщение об ошибке, но не делает этого.Вы также обнаружите, что использование нового URL () будет работать для поддерживаемых протоколов.
Надеюсь, это поможет.Я обновлю этот ответ, если я найду убедительные доказательства в официальной документации, но я почти уверен, что подход с высоким уровнем безопасности Google для Chrome является причиной невозможности этого