【发布时间】:2019-09-20 11:53:42
【问题描述】:
有谁知道在新的 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}://”,它会正常启动应用程序,所以我知道这不是注册问题。
【问题讨论】: