2015-11-05 36 views
1

一旦我的份額擴展被加載,而不是每次而不是一切立即對用戶可見。最常見的是您可以看到圖像,圖像數量和內容文本。但是有些情況下會有更多的信息。如何獲得分享延長從擴展上下文項目爲iOS?

  • 如何訪問它們?

我知道內SLComposeServiceViewControllerextensionContext及其inputItems財產。

好了,我停在時間的調試,並打印出控制檯有些東西與下面的命令:

po (extensionContext!.inputItems[0] as! NSExtensionItem).userInfo![NSExtensionItemAttachmentsKey] 
  • 是它這樣做正確的方式?
  • 有通常是一個輸入項?

還有兩個NSItemProvider對象作爲附件發送到第一NSExtensionItem

enter image description here

確定,然後打印出的第一個附件:

enter image description here

  • 如何要得到 從NSItemProvider和URL從下一個形象?你能提供一些代碼嗎?

我想我們會用

loadItemForTypeIdentifier(_:options:completionHandler:) 

,但不知道怎麼辦。

回答

3
  1. import 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 
    
            }) 
           } 
          } 
         } 
        } 
    }