Я пытаюсь создать расширение Chrome, которое открывает пользовательский URI (который затем открывает зарегистрированный URI протокола в другом приложении, зарегистрированном в системе).
Например, мой пользовательский URI протоколаmycustomapp://input-arguments-here
Если я создаю HTML-страницу с привязкой <a href="mycustomapp://input-arguments-here">Link</a>
, это открывает мое пользовательское приложение с input-arguments-here
, как и ожидалось.
Я создал расширение Chrome, чтобы открыть свой пользовательскийURI.
function openCustomURIScheme(info, tab) {
chrome.tabs.create({
url: "mycustomapp:/" + info.linkUrl
},
function(newTab) {
setTimeout(function() {
chrome.tabs.remove(newTab.id);
}, 250);
}
);
}
В Firefox это прекрасно работает.Он открывает диалоговое окно, которое предлагает пользователю «Открыть» расширение.Между тем, он закрывает пустую вкладку, которая открылась, когда мы создали вкладку для перехода к пользовательскому URI.
В Chrome это не работает.Когда вызывается chrome.tabs.remove(newTab.id)
, он закрывает вкладку и с предложением открыть ссылку во внешнем приложении.
Если я опущу это:
setTimeout(function() {
chrome.tabs.remove(newTab.id);
}, 250);
Это работает, но затем я получаю пустую вкладку, которая остается каждый раз, когда я запускаю пользовательский URI.
Как открыть пользовательский URI из расширения Chrome, не оставляя пустое окно с вкладками?