2014-06-25 6 views
7

Ich entwickle eine benutzerdefinierte Tastatur auf iOS 8 beta, und ich möchte dem Benutzer sagen, wie es in der App zu halten, wenn meine benutzerdefinierte Tastatur nicht aktiviert ist, gibt es eine Möglichkeit zu erkennen, eine App-Erweiterung aktiviert ist?Wie erkennt man eine App-Erweiterung in der App auf iOS 8?

+0

Ähnliche (neuere) Frage: http://stackoverflow.com/questions/25675628/how-to-detect-whether-custom-keyboard-is-activated-from-the-keyboards-container/25714326#25714326 – dandoen

Antwort

-2

1) vor allem lassen Sie uns einige Konstanten auf sie einander verstehen machen einfach zu:

  • App enthält = die App, die die Erweiterung installiert und hält die Erweiterung binäre und
  • Host-App target = die App, in der die Erweiterung läuft (andere Seite)
  • Erweiterung = Alle neuen Komponenten/Module von iOS8, die wir jetzt systemweit verwenden können: benutzerdefinierte Tastaturen, heutige Widgets, Fotobearbeitungseffekte und mehr ..

2) Apple hat auch eine ruhigere API namens App Groups API veröffentlicht Diese API ermöglicht es einem Entwickler, n Erweiterungen unter 1 Bundle-ID zu gruppieren und eine Kommunikationsverbindung zwischen der App und den darin enthaltenen Erweiterungen zu erstellen.

3) Sie können Daten zwischen den Erweiterungen teilen und enthält ca. NUserDefaults verwenden, aber mit dieser neuen Methode:

[[NSUserDefaults alloc] initWithSuiteName:@"<app group identifier>"]; 

Lese-/Schreib ... und sync:

[myDefaultsObj synchronize]; 

4) und nun auf die untere Zeile:

die App Gruppe uRL-Schema verwenden, um zu testen, was Sie wollen:

https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSExtensionContext_Class/#//apple_ref/occ/instm/NSExtensionContext/openURL:completionHandler:

- (void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler 
  • URL - Die URL zu öffnen.
  • completionHandler - Ein Block, der aufgerufen wird, wenn die URL geöffnet wurde.
  • Dieser Parameter - Erfolg - ist ein boolescher Wert, der angibt, ob das Öffnen erfolgreich war.

Viel Glück !!!

+2

Die Methode "(void) openURL: (NSURL *) URL completionHandler: (void (^) (BOOL Erfolg)) completionHandler" ist nur in App-Erweiterung verfügbar, ich möchte APP EXTENSION aktiviert ist oder nicht bei APP enthalten. – moligaloo

+0

'[NSExtensionContext openURL: completionHandler:]' wird immer für andere Erweiterungen als Heute-Erweiterungen fehlschlagen – user102008

Verwandte Themen