Как запустить приложение Mac OS из расширения Safari? - PullRequest
0 голосов
/ 15 декабря 2018

Кто-нибудь знает, что заменяет следующий устаревший блок кода расширения для запуска приложения MacOS в новых расширениях Safari?

safari.application.activeBrowserWindow.activeTab.url = "{app_url_scheme}://"

В настоящее время мы работаем над переходом от устаревшего расширения для поддержкиболее новая платформа Safari Extensions.В устаревшем расширении мы использовали следующий фрагмент кода в файле global.html для запуска нашего приложения для Mac OS:

safari.application.activeBrowserWindow.activeTab.url = "{app_url_scheme}://......."

Кажется, что сопоставимый код в новой платформе Safari Extension будет следующим:

guard let url = URL(string: "{app_url_scheme}://") else {
    return
}

SFSafariApplication.getActiveWindow {(activeWindow: SFSafariWindow?)in
    activeWindow?.openTab(with: url, makeActiveIfPossible: false, 
    completionHandler: { (activeTab: SFSafariTab?) in
        print("openTab completed")
    })
} 

Однако, хотя вкладка будет открываться очень хорошо, если она будет выглядеть как "https://www.cnn.com",, она ничего не будет делать, если будет просто" {app_url_scheme}: // ". Кроме того, я могувведите "{app_url_scheme}: //" в браузере Safari, и приложение будет нормально запускаться, поэтому я знаю, что это не проблема с регистрацией.

1 Ответ

0 голосов
/ 04 января 2019

Для любого, кто столкнется с этим в будущем, похоже, что код для запуска приложения MacOS будет следующим:

guard let url = URL(string: "{app_url_scheme}") else {
   return
}

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