Как запустить пользовательский URI из расширения, не оставляя открытой пустой вкладки? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать расширение 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, не оставляя пустое окно с вкладками?

1 Ответ

0 голосов
/ 15 октября 2018

Вот как я обошел проблему.

Я создал обработчик «при установке», который показывает HTML-код при установке расширения, который будет давать пользователю указание щелкнуть ссылку на пользовательский URI и попросить его установить флажок «всегда» в пользовательскомURI, чтобы он из будущего их не запрашивал.

Что-то вроде:

Чтобы завершить установку, нажмите на эту ссылку ниже, а затем при появлении запроса выберите «всегда открывать»ссылки в custom-app-here ".

Затем в этот момент существующее решение, где оно открывает его на вкладке, а затем закрывает вкладку после небольшой задержки MS работает так же, как и в Firefox, потому чтоподсказки больше нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...