我的 iOS 操作扩展在调试器中未显示 Public.URL



嗨查看器 我的 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);
        })
    }

相关内容