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
である場合は、アプリ グループの構成を確認して、プロビジョニング プロファイルが正しく構成され、開発用コンピューターにダウンロードまたはインストールされていることを確認します。
詳しくは、アプリ グループの機能に関するドキュメントをご覧ください。