在 Xamarin 中使用 watchOS 父应用程序

手表应用和与其捆绑的 iOS 应用之间有不同的通信方式:

  • 手表应用可在 iPhone 上的父应用程序上运行代码

  • 手表扩展可与父 iPhone 应用共享一个存储位置

  • 使用切换将数据从通知传递到手表应用,将用户发送到应用中的特定接口控制器。

父应用有时也称为容器应用。

运行代码

这两个示例演示如何使用 WCSession 在手表应用和配对的 iPhone 之间运行代码和发送消息:

共享存储

如果配置一个应用组,则 iOS 8 扩展(包括手表扩展)可与父应用共享数据。

NSUserDefaults

可在手表应用扩展和父 iPhone 应用中编写以下代码,使它们可引用一组常见的 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,则检查应用组配置以确保预配配置文件已正确配置,并且已在开发计算机上下载/安装。

有关详细信息,请参阅应用组功能文档。