Apple Watchプログラミングの作法 Extensionアプリ/Objective-C対応

iPhoneからApple Watchへアクセスする - iPhoneからApple Watchへ情報伝達を仕掛ける

Icon comment count 0
Icon stock count 0

8.2 iPhoneからApple Watchへ情報伝達を仕掛ける

残念ながらiPhoneがApple Watchに対してコミュニケーションを仕掛ける仕組みは、WatchKitフレームワークにはありません。また、iOSアプリとExtensionは、別々のSandBoxで動く別プロセスなのでNSNotificationCenterを使った連絡もできません。しかしiOSシステムが持っているプロセス間の通知機能を利用して連絡を取ることは可能です。

そこで本アプリではiOSシステム内でグローバルに通知できるCore Foundationのサービス"Darwin Notification Center"(以下DNC)を使って、iOSアプリからExtensionへ情報を送信することにします。

iPhoneからApple Watchへ

DNCは通常の通知サービスと同様に、通知を受け取りたいプロセスが「通知ID」を登録し、他プロセスが同じ「通知ID」で通知を発行した時にコールバック関数が呼ばれる、という仕組みです。具体的なプログラムを見てDNCにできること、できないことをチェックしておきましょう。

通知を受け取る側(WatchKit Extension)
// コールバック関数を登録する
- (void)registerCallBack {
    
    // iOSアプリ側から通知を受けた時のコールバック関数を登録
    CFNotificationCenterAddObserver(
                CFNotificationCenterGetDarwinNotifyCenter(),
  

コメント

    コメントはありません