Xamarin での watchOS 親アプリケーションの操作

ウォッチ アプリとバンドルされている iOS アプリの間で通信するには、さまざまな方法があります:

  • ウォッチ アプリは、iPhone 上の親アプリでコードを実行できます。

  • ウォッチ拡張機能は 親 iPhone アプリとストレージの場所を共有できます。

  • ハンドオフを使用して、通知からウォッチ アプリにデータを渡し、アプリ内の特定のインターフェイス コントローラーにユーザーを送信します。

親アプリは、コンテナー アプリとも呼ばれます。

ストレージの共有

アプリ グループを構成した場合、iOS 8 拡張機能 (ウォッチ拡張機能を含む) は親アプリとデータを共有できます。

NSUserDefaults

次のコードは、ウォッチ アプリ拡張機能と親 iPhone アプリの両方で記述できるため、共通の NSUserDefaultsセットを参照できます:

NSUserDefaults shared = new NSUserDefaults(
        "group.com.your-company.watchstuff",
        NSUserDefaultsType.SuiteName);

// set values
shared.SetInt (2, "count");
shared.Synchronize ();

// get values
shared.Synchronize ();
var count = shared.IntForKey ("count");

Files

iOS アプリとウォッチ拡張機能では、共通のファイル パスを使用してファイルを共有することもできます。

var FileManager = new NSFileManager ();
var appGroupContainer =
            FileManager.GetContainerUrl ("group.com.your-company.watchstuff");
var appGroupContainerPath = appGroupContainer.Path;
Console.WriteLine ("agcpath: " + appGroupContainerPath);
// use the path to create and update files

注: パスが null である場合は、アプリ グループの構成を確認して、プロビジョニング プロファイルが正しく構成され、開発用コンピューターにダウンロードまたはインストールされていることを確認します。

詳しくは、アプリ グループの機能に関するドキュメントをご覧ください。