Trabalhando com o aplicativo pai do watchOS no Xamarin
Há diferentes maneiras de se comunicar entre o aplicativo do relógio e o aplicativo iOS que ele acompanha:
Os aplicativos do Watch podem executar código no aplicativo pai no iPhone.
As extensões de relógio podem compartilhar um local de armazenamento com o aplicativo pai para iPhone.
Use a transferência para passar dados de uma notificação para o aplicativo do relógio, enviando o usuário para um controlador de interface específico no aplicativo.
O Aplicativo Pai também é às vezes chamado de Aplicativo de Contêiner.
Armazenamento compartilhado
Se você configurar um grupo de aplicativos, as extensões do iOS 8 (incluindo extensões de observação) poderão compartilhar dados com o aplicativo pai.
NSUserDefaults
O código a seguir pode ser escrito na extensão do aplicativo Watch e no aplicativo pai do iPhone para que eles possam fazer referência a um conjunto comum 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");
Arquivos
O aplicativo iOS e a extensão de observação também podem compartilhar arquivos usando um caminho de arquivo comum.
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
Observação: se o caminho fornull
, verifique a configuração do grupo de aplicativos para garantir que os perfis de provisionamento tenham sido configurados corretamente e tenham sido baixados/instalados no computador de desenvolvimento.
Para obter mais informações, consulte a documentação de Recursos do Grupo de Aplicativos .