Özel klavye kullanıyorum ve farklı düğmeyi gösteren uygulama nasıl algılanır? E.g. Twitter'da ben giriş alanına yazıyorum ve Reddit/r/Özel bir iOS klavyesinde, uygulamayı algılar
cevap
'da bu mümkün olmaz. Bir uzantı korumalı çalışır ve yalnızca API'den bilgi beslenir ve başka herhangi bir şeye erişemez. Klavye sadece metin içeriği değişiklikleri alabilir ve çağrıları etkinleştirebilir/devre dışı bırakabilir. Bir uygulamayı tespit edebilmek, uzantı sanal alanının dışında yer alır ve bu nedenle imkansızdır.
Doğru ama bir geçici çözüm var (yukarıdaki yorumları kontrol edin) –
'kendiliğinden. textDocumentProxy.keyboardType' çalışmalıdır. – Schemetrical
Aşağıdaki kod aracılığıyla mümkündür. Eğer paket tanımlayıcı itibaren
let hostBundleID = self.parentViewController!.valueForKey("_hostBundleID")
let currentHostBundleID = String(hostBundleID)
print(currentHostBundleID);
Swift size özel klavye kullanıyorsanız uygulamanın paket tanıtıcısını .. alırsınız gibi kolayca uygulama adını bulabilirsiniz.
En iyi şanslar!
Schemetrical'in dediği gibi, içinde bulunduğunuz uygulamayı belirleyemezsiniz (en azından, * olması gereken * olmadığınızı, ve muhtemelen burada yazılan herhangi bir cevabın bir boşluk olduğu kabul edilir ve Apple), ama siz * bir Twitter stili metin alanında olduğunuzu ve herhangi bir uygulamadan kullanılabilen Twitter'da yayınlamak için API'lar oluşturulduğundan, uygulamayı bilmekten daha iyi olabilecek uygun bir şekilde yanıt verebileceğinizi * bilebilirsiniz . –
@Benet için teşekkür ederiz! "Twitter stili metin alanı" ile ilgili tüm ipuçlarını takdir ediyorum –
API'da bu protokolü uygulayan bir nesneye (Unutmayacağım) erişiminiz var: https://developer.apple.com/library/ios/documentation/UIKit/Reference o, UIKeyboardTypeNumbersAndPunctuation, UIKeyboardTypeURL, UIKeyboardTypeNumberPad, UIKeyboardTypePhonePad, UIKeyboardTypeNamePhonePad, UIKeyboardTypeEmailAddress, UIKeyboardTypeDecimalPad, UIKeyboardTypeTwitter, UIKeyboardTypeWebSearch, UIKeyb –