在 Xamarin 中使用 watchOS 设置

Apple Watch 应用可以使用与 iOS 应用相同的“设置”功能 -“设置”用户界面显示在 iPhone 应用 Apple Watch 中,但在 iPhone 应用和手表扩展中都可以访问这些值。

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

这些设置将存储在 iOS 应用和手表应用扩展中可供访问的一个共享文件位置(由应用组定义)。 你应当在添加设置之前使用以下说明配置应用组

在 Watch 解决方案中添加设置

在你的解决方案中的 iPhone 应用中(不是手表应用或扩展):

  1. 右键单击“添加”>“新建文件...”并选择 Settings.bundle(无法在“新建文件”对话框中编辑名称):

    Add a new Settings Bundle

  2. 将名称更改为 Settings-Watch.bundle(选择并键入 Command + R 进行重命名):

    Rename the bundle

  3. 将新键 ApplicationGroupContainerIdentifier 添加到 Root.plist 并将值设置为你配置的应用组(例如示例中的 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

在 Watch 应用中使用“设置”

若要访问用户选择的值,请通过使用应用组并指定 NSUserDefaultsType.SuiteName 来创建 NSUserDefaults 实例:

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.