首页 > 解决方案 > 从 Swift 中的 Share Extension 获取数据

问题描述

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

  1. 用户在某个网站上的 Safari 中查找任何类型的产品

  2. 用户点击“分享”并选择我的应用

  3. 我从当前 URL 解析数据并将其使用/存储在我的应用程序中

问题:

如何在 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的数据,我的意思是:

在此处输入图像描述

标签: iosswiftshare-extension

解决方案


在@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
    }
}

推荐阅读