在 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 文件中获取所有输出。