嗨查看器 我的 iOS 操作扩展有问题,我正在尝试获取 Safari 当前已打开的公共 URL,但我无法判断我是否有公共 URL,因为它没有显示在调试器中。事实上,调试器是黑色的,唯一显示的信息是操作扩展是否中断/崩溃。
这是我从 safari 获取 Public.url 的代码。
//get the itemProvider which wraps the url we need
var item : NSExtensionItem = self.extensionContext!.inputItems[0] as! NSExtensionItem
var itemProvider : NSItemProvider = extensionItem.attachments?.first as! NSItemProvider
//pull the URL out
if (itemProvider.hasItemConformingToTypeIdentifier("public.url")) {
itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (urlItem, error) in
let url : NSURL = urlItem as! NSURL
//do what you need to do now, such as send a request to your server with this url
println(url.absoluteString!);
})
}
有没有更好的方法来做到这一点,它是用 swift 编写的,另外,我已经环顾四周,找不到更好的解决方案,所以我问是否有我可以遵循的教程或示例。
我相信以下内容会起作用:
let item : NSExtensionItem = self.extensionContext!.inputItems[0] as! NSExtensionItem
let itemProvider : NSItemProvider = item.attachments?.first as! NSItemProvider
//pull the URL out
if (itemProvider.hasItemConformingToTypeIdentifier("public.url")) {
itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (urlItem, error) in
let url : NSURL = urlItem as! NSURL
//do what you need to do now, such as send a request to your server with this url
print(url.absoluteString);
})
}