Работа с родительским приложением watchOS в Xamarin

Существуют различные способы взаимодействия между приложением наблюдения и приложением iOS, с которым он связан:

  • Просмотр приложений может выполнять код в родительском приложении на i Телефон.

  • Расширения watch могут совместно использовать расположение хранилища с родительским приложением i Телефон.

  • Используйте раздатку для передачи данных из уведомления в приложение наблюдения, отправляя пользователя в определенный контроллер интерфейса в приложении.

Родительское приложение также иногда называется приложением-контейнером.

Запуск кода

В этих двух примерах показано, как использовать для WCSession запуска кода и отправки сообщений между приложением наблюдения и парным i Телефон:

Общее хранилище

Если вы настроите группу приложений, расширения iOS 8 (включая расширения часов) могут совместно использовать данные с родительским приложением.

NSUserDefaults

Следующий код можно написать как в расширении приложения для часов, так и в родительском приложении i Телефон, чтобы они могли ссылаться на общий набор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");

Файлы

Приложение 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 проверка конфигурацию группы приложений, чтобы профили подготовки были настроены правильно и были загружены или установлены на компьютере разработки.

Дополнительные сведения см. в документации по возможностям группы приложений .