从 Swift 中的共享扩展获取数据
Get data from Share Extension in Swift
在我的应用程序中,我有一个 CustomShareViewController
,工作流程应该是这样的:
用户在某些网站上使用 Safari 并查找任何类型的产品
用户点击 "share" 并选择我的应用程序
我从当前 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)
}
}
}
}
但是苹果提供的数据有什么办法可以获取吗? (image
和 title
) ?
我的意思是来自 Apple 的数据:
在@Filip 的提示下我找到了这个 Git-Repo:
有了这个我可以简单地得到这样的数据:
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
}
}
在我的应用程序中,我有一个 CustomShareViewController
,工作流程应该是这样的:
用户在某些网站上使用 Safari 并查找任何类型的产品
用户点击 "share" 并选择我的应用程序
我从当前 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)
}
}
}
}
但是苹果提供的数据有什么办法可以获取吗? (image
和 title
) ?
我的意思是来自 Apple 的数据:
在@Filip 的提示下我找到了这个 Git-Repo:
有了这个我可以简单地得到这样的数据:
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
}
}