Uso de la aplicación primaria de watchOS en Xamarin

Hay diferentes maneras de comunicarse entre la aplicación de Watch y la aplicación de iOS con la que está agrupada:

  • Las aplicaciones de Watch pueden ejecutar código en la aplicación primaria en iPhone.

  • Las extensiones de Watch pueden compartir una ubicación de almacenamiento con la aplicación primaria de iPhone.

  • Use la entrega para pasar datos de una notificación a la aplicación de Watch, enviando al usuario a un controlador de interfaz específico de la aplicación.

La aplicación primaria también se conoce a veces como aplicación contenedora.

Almacenamiento compartido

Si configura un grupo de aplicaciones, las extensiones de iOS 8 (incluidas las extensiones de Watch) pueden compartir datos con la aplicación primaria.

NSUserDefaults

El código siguiente se puede escribir tanto en la extensión de aplicación de Watch como en la aplicación primaria de iPhone para que puedan hacer referencia a un conjunto común de 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");

Archivos

La aplicación de iOS y la extensión de Watch también pueden compartir archivos mediante una ruta de acceso de archivo común.

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

Nota: Si la ruta de acceso es null, compruebe la configuración del grupo de aplicaciones para asegurarse de que los perfiles de aprovisionamiento se hayan configurado correctamente y se hayan descargado o instalado en el equipo de desarrollo.

Para más información, consulte la documentación Funcionalidades del grupo de aplicaciones.