在 ShareExtension 中访问网站 URL 和标题
Accessing Website URL and Title in ShareExtension
我正在尝试通过 ShareExtension 访问我的应用程序的 url 和用户当前所在页面的标题。
设置完所有内容后,我似乎无法将 completionHandler 中的代码获取到 运行。
if let item = extensionContext?.inputItems.first as? NSExtensionItem {
if let attachments = item.attachments as? [NSItemProvider] {
for attachment: NSItemProvider in attachments {
print(attachment)
attachment.loadItem(forTypeIdentifier: kUTTypePropertyList as String, options: nil, completionHandler: {(dict, error) in
let itemDictionary = dict as! NSDictionary
let javaScriptValues = itemDictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
print(javaScriptValues)
})
}
}
}
深入挖掘后,我知道代码一直执行到 for 循环。附件类型为 PropertyList。
但是 loadItem(forIdentifier:options:completionHandler:) 方法似乎从来没有 运行,其中的代码更是如此。
有人遇到过这个问题吗?我确定我遗漏了什么但无法弄清楚。
将您的 "loadItem" 更改为 "loadItemAsync" 并 运行 这样。我 运行 从字面上看与完成块完全相同的问题不是 运行ning,但是当我调用 "loadItemAsync" 而不是 "loadItem," 时,它 运行 很好并且我从我的 JS 文件中获取所有输出。
我正在尝试通过 ShareExtension 访问我的应用程序的 url 和用户当前所在页面的标题。
设置完所有内容后,我似乎无法将 completionHandler 中的代码获取到 运行。
if let item = extensionContext?.inputItems.first as? NSExtensionItem {
if let attachments = item.attachments as? [NSItemProvider] {
for attachment: NSItemProvider in attachments {
print(attachment)
attachment.loadItem(forTypeIdentifier: kUTTypePropertyList as String, options: nil, completionHandler: {(dict, error) in
let itemDictionary = dict as! NSDictionary
let javaScriptValues = itemDictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
print(javaScriptValues)
})
}
}
}
深入挖掘后,我知道代码一直执行到 for 循环。附件类型为 PropertyList。
但是 loadItem(forIdentifier:options:completionHandler:) 方法似乎从来没有 运行,其中的代码更是如此。
有人遇到过这个问题吗?我确定我遗漏了什么但无法弄清楚。
将您的 "loadItem" 更改为 "loadItemAsync" 并 运行 这样。我 运行 从字面上看与完成块完全相同的问题不是 运行ning,但是当我调用 "loadItemAsync" 而不是 "loadItem," 时,它 运行 很好并且我从我的 JS 文件中获取所有输出。