2015-05-23 11 views
6

यह पता लगाने के लिए कि मेरा कस्टम कीबोर्ड किस ऐप का इस्तेमाल करता है और अलग-अलग बटन दिखाता है? ईजी। ट्विटर में मैं इनपुट फ़ील्ड में स्ट्रिंग I पोस्ट में @ और Reddit/r/कस्टम आईओएस कीबोर्ड में ऐप का पता लगाएं

+2

स्कीमेट्रिकल की तरह कहा गया है, आप उस ऐप को निर्धारित नहीं कर सकते हैं जिसमें आप हैं (कम से कम, आप * होने वाले * नहीं होने वाले हैं, और शायद यहां पोस्ट किए गए किसी भी उत्तर को एक छेड़छाड़ माना जाएगा और इसे ठीक किया जाएगा ऐप्पल), लेकिन आप * जानते हैं कि आप एक ट्विटर स्टाइल टेक्स्ट फ़ील्ड में हैं, और उचित प्रतिक्रिया देते हैं, जो ऐप को जानने से बेहतर हो सकता है, क्योंकि ट्विटर पर पोस्ट करने के लिए एपीआई में बनाया गया है जिसे किसी भी ऐप से इस्तेमाल किया जा सकता है । –

+0

@ प्रेरणा के लिए बेहद धन्यवाद! मैं "ट्विटर स्टाइल टेक्स्ट फ़ील्ड" के बारे में किसी भी सुराग की सराहना करता हूं –

+2

आपके पास किसी ऑब्जेक्ट में एपीआई में प्रवेश है (मैं भूल जाता हूं) जो इस प्रोटोकॉल को लागू करता है: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputTraits_Protocol/ –

उत्तर

2

में यह संभव नहीं है। एक एक्सटेंशन सैंडबॉक्स चलाता है और केवल एपीआई से खिलाया जाता है और किसी और चीज तक नहीं पहुंच सकता है। कीबोर्ड केवल टेक्स्ट संदर्भ परिवर्तन प्राप्त कर सकता है और कॉल सक्रिय/निष्क्रिय कर सकता है। ऐप का पता लगाने में सक्षम होने के कारण एक्सटेंशन सैंडबॉक्स के बाहर स्थित है और इसलिए असंभव है।

+0

आप सही हैं लेकिन एक वर्कअराउंड है (ऊपर टिप्पणियों की जांच करें) –

+2

'स्वयं। textDocumentProxy.keyboardType' काम करना चाहिए। – Schemetrical

5

कोड के बाद यह संभव है। आप अनुप्रयोग जहां आप अपने कस्टम कुंजीपटल का उपयोग कर रहे के बंडल पहचानकर्ता ..

स्विफ्ट

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

बंडल पहचानकर्ता से मिल जाएगा के रूप में आप आसानी से एप्लिकेशन के नाम पा सकते हैं।

शुभकामनाएं!

संबंधित मुद्दे