Xamarin での watchOS 設定の操作

Apple Watch アプリでは、iOS アプリと同じ設定機能を使用できます。設定のユーザー インターフェイスは Apple Watch は iPhone アプリに表示されますが、iPhone アプリとウォッチ拡張機能の両方で値にアクセスできます。

Apple Watch apps can use the same Settings functionality as iOS apps

設定は、iOS アプリとウォッチ アプリ拡張機能の両方からアクセスできる共有ファイルの場所に格納されます。これは、アプリ グループによって定義されます。 次の手順に従って、設定を追加する前にアプリ グループを構成する必要があります。

ウォッチ ソリューションに設定を追加する

ソリューション内の iPhone アプリ (ウォッチ アプリや拡張機能ではない) で:

  1. [追加] > [新しいファイル...] を右クリックし、[Settings.bundle] を選択します ([新しいファイル] ダイアログボックスで名前を編集することはできません):

    Add a new Settings Bundle

  2. 名前を Settings-Watch.bundle に変更します (名前を変更するには、コマンド + R を選択して入力します):

    Rename the bundle

  3. Root.plist に新しいキー ApplicationGroupContainerIdentifier を追加し、その値を構成したアプリ グループに設定します (例: サンプルの group.com.xamarin.WatchSettings):

    Add a ApplicationGroupContainerIdentifier key to the Root.plist

  4. Settings-Watch.bundle/Root.plist を編集して、使用するオプションを含めます。テンプレート ファイルにはグループが含まれています。 テキストフィールド、スイッチとスライダーをデフォルトで切り替えます (削除して独自の設定に置き換えることができます):

Edit the Settings-Watch.bundle/Root.plist

ウォッチ アプリで設定を使用する

ユーザーが選択した値にアクセスするには、アプリ グループを使用して NSUserDefaults インスタンスを作成し、NSUserDefaultsType.SuiteName を指定します:

NSUserDefaults shared = new NSUserDefaults(
    "group.com.xamarin.WatchSettings",
    NSUserDefaultsType.SuiteName);

var isEnabled = shared.BoolForKey ("enabled_preference");
var userName = shared.StringForKey ("name_preference");

Apple Watch アプリ

The new Apple Watch app on the iPhone

ユーザーは、iPhone の新しい Apple Watch アプリを使用して設定を操作します。 このアプリを使用すると、ユーザーは時計のアプリを表示/非表示にし、Settings-Watch.bundle を使用して公開されている設定を編集できます。

Screenshot shows WatchKitSettings in the app.Screenshot shows WatchTodo in the app.