从 Swift 中的共享扩展获取数据

Get data from Share Extension in Swift

在我的应用程序中,我有一个 CustomShareViewController,工作流程应该是这样的:

  1. 用户在某些网站上使用 Safari 并查找任何类型的产品

  2. 用户点击 "share" 并选择我的应用程序

  3. 我从当前 URL 解析数据并在我的应用程序中使用 it/store 它

问题:

如何获取Swift中的数据?我设法得到了当前的 URL 和这样的 HTML

@objc func actionButtonTapped(){

        var html: String?

        if let item = extensionContext?.inputItems.first as? NSExtensionItem,
            let itemProvider = item.attachments?.first,
            itemProvider.hasItemConformingToTypeIdentifier("public.url") {
            itemProvider.loadItem(forTypeIdentifier: "public.url", options: nil) { (url, error) in
                if (url as? URL) != nil {

                    html = (self.getHTMLfromURL(url: url as? URL))

                    self.doStuff(html: html)
                }
            }
        }
}

但是苹果提供的数据有什么办法可以获取吗? (imagetitle) ?

我的意思是来自 Apple 的数据:

在@Filip 的提示下我找到了这个 Git-Repo:

URLEmbeddedView

有了这个我可以简单地得到这样的数据:

let urlString = ...
OpenGraphDataDownloader.shared.fetchOGData(urlString: urlString) { result in
    switch result {
    case let .success(data, isExpired):
        // do something
    case let .failure(error, isExpired):
        // do something
    }
}