2015-01-27 1 views
3

интерактивных книгами я пытаюсь поделиться выбранным/выделенным текстом в интерактивных книгах с моим собственным расширением, но doen't есть что-нибудь в self.extensionContextIOS расширения-доля не работает с

<NSExtensionContext: 0x17541d90> - UUID: <__NSConcreteUUID 0x1765e860> D69F0393-C5F1-4DEB-9A97-B479C2BC0C95 - _isHost: NO 
items: 
(
) 

так после того, как я выбираю мое расширение в предоставленном списке он просто всплывает пустым SLComposeServiceViewController

Mail, iMessages, Twitter и т. д. работает должным образом. Есть ли какая-то дополнительная магия, которую я должен сделать, чтобы справиться с этим?

ответ

2

Это действительно кажется, что проблема была решена с прошивкой 9, следующим кодом (в Swift) правильно возвращает содержимое выбора в интерактивных книгах:

for item: AnyObject in self.extensionContext!.inputItems { 
     let inputItem = item as! NSExtensionItem 
     for provider: AnyObject in inputItem.attachments! { 
      let itemProvider = provider as! NSItemProvider 
      if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeText as String) { 
       itemProvider.loadItemForTypeIdentifier(kUTTypeText as String, options: nil, completionHandler: { (txt, error) in 
        NSOperationQueue.mainQueue().addOperationWithBlock { 
          //Doing stuff with txt 
        } 
       }) 
      } 
     } 
    } 
4

Интересных вещи о этом являются

  • При совместном использовании с интерактивных книг, self.extensionContext.inputItems является пустым массивом. Это не дает вам ничего поделиться.
  • Обмен с iBooks работает только с расширениями, которые были предоставлены Apple. На моем iPhone другие расширения доступны из iBooks - Evernote, Things и других, но никто из них не работает нормально. Все они приходят с пустым контентом.

Мое мнение: совместное использование с расширений Apple зависит от некоторых недокументированных секретных действий, и нет никакой дополнительной магии, которую вы можете применить, которая прошла бы через процесс утверждения магазина приложения.

Если вы установили правило активации на TRUEPREDICATE (что означает, что расширение всегда должно отображаться) или что-то очень мягкое, ваше расширение будет отображаться в iBooks. Но это не похоже, что вы можете получить любой контент, чтобы поделиться прямо сейчас. Я напишу об этом Apple.