2014-06-25 20 views
7

iOS 8 beta sürümünde özel bir klavye geliştiriyorum ve kullanıcıya özel klavye etkin değilse, uygulamayı nasıl etkinleştirebileceğinin, uygulama uzantısının etkin olduğunu algılamanın herhangi bir yolu olduğunu söylemek istiyorum.iOS 8'de uygulama içeren bir uygulama uzantısı nasıl tespit edilir?

+0

Benzer (daha yeni yakın tarihli bir soru) http://stackoverflow.com/questions/25675628/how-to-detect-whether-custom-keyboard-is-activated-from-the-keyboards-container/25714326#25714326 – dandoen

cevap

-2

1) en kolay birbirimizi anlamaya yapmak için bazı sabitleri ayarlayalım her şeyden önce: Uygulamayı = uzantısını yükler ve ikili uzantısını tutan ve

  • konak uygulamasını hedef uygulamayı içeren

    • = uzantının (diğer parti) içinde çalıştığı uygulama (diğer taraf)
    • extension = Şu anda sistem genelinde kullanıma hazırlayabileceğimiz iOS8'in yeni bileşenlerinden/modüllerinden herhangi biri: özel klavye, bugün widget'lar, fotoğraf düzenleme efektleri ve daha fazlası ..

    2) Apple ayrıca Uygulama Grupları API'sı adı verilen daha sessiz bir API yayımladı. Bu API, bir geliştiricinin 1 paket tanımlayıcısı altında uzantıları gruplamasına olanak tanır ve uygulama ile içerdiği uzantılar arasında bir iletişim kablosu oluşturur.

    3) uzantıları ve NUserDefaults kullanarak içeren uygulamaya arasında veri paylaşımı, ama bu yeni yöntem ile olabilir:

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

    okuma/yazma ... ve senkronizasyon:

    [myDefaultsObj synchronize]; 
    

    4) ve şimdi alt satıra:

    istediğini test etme olanağı verir grubun url şemaları kullanın:

    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 - açmak için URL.
    • completionHandler - URL açıldığında çağrılan bir blok.
    • bu parametre - başarı - açıklığın başarılı olup olmadığını belirten bir Boole değeridir.

    İyi şanslar !!!

  • +2

    "(Void) openURL yöntemi: (NSURL *) URL completionHandler: (void (^) (BOOL başarı)) completionHandler" sadece uygulama uzantısında kullanılabilir, APP EXTENSION işlevinin etkin olduğunu veya APPTA UYGULANMADIĞINI tespit etmek istiyorum. – moligaloo

    +0

    '[NSExtensionContext openURL: completionHandler:]' her zaman Bugün uzantıları dışındaki uzantılar için başarısız olur – user102008

    İlgili konular