簡體   English   中英

如何從Safari擴展程序啟動Mac OS應用程序?

[英]How to Launch a Mac OS App From Safari Extension?

有誰知道新的Safari擴展程序中用於啟動MacOS應用程序的以下舊擴展代碼塊的替代品?

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

我們目前正在努力從舊版擴展過渡到支持較新的Safari擴展框架。 在舊版擴展程序中,我們在global.html文件中使用以下片段代碼啟動了Mac OS應用程序:

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

新的Safari擴展框架中的可比代碼似乎如下:

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}://”,它將不會執行任何操作。 此外,我可以在Safari瀏覽器中輸入“ {app_url_scheme}://”,這樣就可以正常啟動該應用程序,因此我知道這不是注冊問題。

對於將來遇到任何麻煩的人來說,啟動MacOS應用程序的代碼似乎如下:

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

NSWorkspace.shared.open(url)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM