Работа с параметрами watchOS в Xamarin
Приложения Apple Watch могут использовать те же функции параметров, что и приложения iOS. Пользовательский интерфейс параметров отображается в приложении Apple Watch iPhone, но значения доступны как в приложении iPhone, так и в расширении часов.
Параметры будут храниться в общем расположении файлов, доступном как приложению iOS, так и расширению часового приложения, определенному группой приложений. Перед добавлением параметров необходимо настроить группу приложений, выполнив приведенные ниже инструкции.
Добавление параметров в решение "Контрольные"
В приложении iPhone в решении (а не в приложении для просмотра или расширения):
Щелкните правой кнопкой мыши добавить > новый файл... и выберите Settings.bundle (имя невозможно изменить в диалоговом окне "Новый файл").
Измените имя на Settings-Watch.bundle (выберите и введите command + R , чтобы переименовать):
Добавьте новый ключ
ApplicationGroupContainerIdentifier
в root.plist со значением, заданным для настроенной группы приложений (например,group.com.xamarin.WatchSettings
в примере):Измените параметр Settings-Watch.bundle/Root.plist , чтобы он содержал параметры, которые вы хотите использовать, — файл шаблона содержит группу. textfield, переключатель и ползунок по умолчанию (которые можно удалить и заменить собственными параметрами):
Использование параметров в приложении "Просмотр"
Чтобы получить доступ к значениям, выбранным пользователем, создайте 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
Пользователи будут взаимодействовать с параметрами с помощью нового приложения Apple Watch на iPhone. Это приложение позволяет пользователю отображать и скрывать приложения на часах, а также изменять параметры, предоставляемые с помощью settings-Watch.bundle.