簡體   English   中英

如何檢測在 iOS 8 上的包含應用程序中啟用了應用程序擴展?

[英]How to detect an app extension is enabled in containing app on iOS 8?

我正在 iOS 8 beta 上開發自定義鍵盤,我想告訴用戶如果我的自定義鍵盤未啟用,如何在包含應用程序中啟用它,有什么方法可以檢測應用程序擴展是否已啟用?

  1. 首先讓我們設置一些常量,以便於相互理解:

    • 包含應用程序 = 安裝擴展程序並保存擴展程序二進制文件和目標的應用程序
    • 主機應用程序 = 擴展程序在其中運行的應用程序(另一方)
    • 擴展 = 我們現在可以構建到系統范圍內使用的任何 iOS8 新組件/模塊:自定義鍵盤、今天的小部件、照片編輯效果等等..
  2. Apple 還發布了一個更安靜的 API,稱為 App Groups API。這個 API 允許開發人員將 n 個擴展分組在 1 個捆綁標識符下,並在應用程序和其中包含的擴展程序之間創建通信線路。

  3. 您可以使用 NUserDefaults 在擴展程序和包含的應用程序之間共享數據,但使用這種新方法:

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

    讀/寫...和同步:

     [myDefaultsObj synchronize];
  4. 現在到了底線:

    使用應用組的 url 方案來測試你想要的:

    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 - 要打開的 URL。
    • completionHandler - 在 URL 打開時調用的塊。
    • 此參數 - 成功 - 是一個布爾值,指示打開是否成功。

祝你好運!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM