gpt4 book ai didi

ios - 如何从 iOS 的共享扩展中的扩展上下文中获取项目?

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:52 25 4
gpt4 key购买 nike

一旦加载了我的共享扩展,用户不会立即看到所有内容。最常见的是在那里您可以看到图像、图像数量和内容文本。但是,在某些情况下,会有更多信息。

  • 如何访问它们?

我知道在 SLComposeServiceViewController 中有 extensionContext 及其 inputItems 属性。

好的,所以我及时停止了调试器,并使用以下命令在控制台上打印出一些东西:

po (extensionContext!.inputItems[0] as! NSExtensionItem).userInfo![NSExtensionItemAttachmentsKey]
  • 这样做是否正确?
  • 通常只有一个输入项吗?

有两个 NSItemProvider 对象作为第一个 NSExtensionItem 的附件

enter image description here

好的,那我打印出第一个附件:

enter image description here

  • 如何从 NSItemProvider 获取该图像并从下一个获取 url?您能提供一些代码吗?

我想我们会用

loadItemForTypeIdentifier(_:options:completionHandler:)

但不知道怎么做。

最佳答案

  1. 导入 MobileCoreServices

  2. 有一个简单的函数可以应用到您的代码中:

    private func fetchAndSetContentFromContext() {

    guard let extensionItems = extensionContext?.inputItems as? [NSExtensionItem] else {
    return
    }

    for extensionItem in extensionItems {
    if let itemProviders = extensionItem.attachments as? [NSItemProvider] {
    for itemProvider in itemProviders {
    if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeText as String) {

    itemProvider.loadItemForTypeIdentifier(kUTTypeText as String, options: nil, completionHandler: { text, error in

    })
    }
    }
    }
    }
    }

关于ios - 如何从 iOS 的共享扩展中的扩展上下文中获取项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com