2015-05-23 13 views
6

Wie zu erkennen, in welcher App meine benutzerdefinierte Tastatur verwendet und andere Schaltfläche zeigen? Zum Beispiel in Twitter würde ich hinzufügen @ zu string Ich poste in Eingabefeld und in Reddit/r/In benutzerdefinierten iOS-Tastatur erkennen Sie die App

+2

Wie Schemetrical sagte, können Sie nicht die App bestimmen, in der Sie sich befinden (zumindest, dass Sie * nicht * sein können), und wahrscheinlich würde jede hier gepostete Antwort als Schlupfloch betrachtet und von Ihnen behoben werden Apple), aber Sie * können * wissen, dass Sie in einem Twitter-Stil Textfeld sind, und angemessen reagieren, was besser sein könnte, als die App zu wissen, da es eingebaute APIs zum Posten auf Twitter gibt, die von jeder App verwendet werden können . –

+0

@BenPious danke für Inspirationen! Ich schätze alle Hinweise über "Twitter Stil Textfeld" –

+2

Sie haben Zugriff auf ein Objekt (ich vergesse was), die dieses Protokoll implementiert: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputTraits_Protocol/ –

Antwort

2

Dies ist nicht möglich. Eine Erweiterung läuft sandboxed und ist nur Informationen aus der API gefüttert und kann auf nichts anderes zugreifen. Die Tastatur kann nur Textkontextänderungen empfangen und Anrufe aktivieren/deaktivieren. Die Möglichkeit, eine App zu erkennen, liegt außerhalb der Erweiterungs-Sandbox und ist daher unmöglich.

+0

du bist richtig, aber es gibt einen Workaround (überprüfen Sie Kommentare oben) –

+2

'self. textDocumentProxy.keyboardType' sollte funktionieren. – Schemetrical

5

Es ist durch folgenden Code möglich. Wie Sie Paket-ID des App bekommen, wo Sie Ihre individuelle Tastatur verwenden ..

Swift

let hostBundleID = self.parentViewController!.valueForKey("_hostBundleID") 
    let currentHostBundleID = String(hostBundleID) 
    print(currentHostBundleID); 

Von Bundle-Bezeichner können Sie App-Namen leicht zu finden.

Viel Glück!

Verwandte Themen