swift - 如何在 Safari 应用程序扩展中获取事件选项卡?

标签 swift macos safari safari-app-extension

当我遵循 Apple 示例时,我总是得到一个 nil activeTab:

override func toolbarItemClicked(in window: SFSafariWindow) {
    // This method will be called when your toolbar item is clicked.

    window.getActiveTab(completionHandler: { (activeTab) in
        print(activeTab)
        activeTab?.getActivePage(completionHandler:  { (activePage) in
            print(activePage)
            activePage?.getPropertiesWithCompletionHandler( { (properties) in
                print(properties)
                if properties?.url != nil {
                    let urlString = properties!.url.absoluteString
                    print("URL!", urlString)
                    let videoURL = self.youtubeDl(urlString: urlString)
                    if videoURL != nil {
                        window.openTab(with: videoURL!, makeActiveIfPossible: true, completionHandler: nil)
                    }
                }
            })
        })
    })
}

最佳答案

是的,有一个 getActiveTab:

SFSafariApplication.getActiveWindow { (window) in
    window?.getActiveTab { (tab) in 
        tab?.getActivePage(completionHandler: { (page) in
        }
    }
}

关于swift - 如何在 Safari 应用程序扩展中获取事件选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39724524/

相关文章:

macos - 控制docker-machine(使用NAT)传出端口

javascript - 如何在ios safari上的hls中获取programDateTime?

html - Chrome/Safari 中的 ContentEditable 焦点

swift - 如何从 Swift 中的可选类型获取解包类型?

swift - iOS 14 上的 PKToolPicker 颜色选择器暗模式

swift - macOS : programmatic check if process runs as a launchDaemon or launchAgent or from command-line

ios - 对类型 'System.IConvertible' 的引用声称它是在程序集 mscorlib 中定义的

safari - HTML5 视频无法在本地主机上的 Safari 中播放

ios - 如何使用 Swift 在 Firebase 数据库中设置多个值?

swift - 关闭 UIAlertController 后如何重新加载 UIView