1c7432bfdb098cec395a4c22682127e6
遇见表盘共享

本文由@Kei贡献翻译

表盘分享是 watchOS 7 和 iOS 14中带来的新功能,表盘分享可以直接从手表中长按表盘然后点按新添加的分享按钮,选择一位收件人然后进行发送,在信息中会附带上表盘的预览,收件人单击预览就会出现一个添加表盘的弹窗。

同样你也可以从iPhone来进行表盘的分享,打开iOS中的Watch应用,然后选择一个你要分享的表盘然后单击右上角的分享按钮,然后就会弹出分享的菜单:

表盘可以直接从应用中或者从网站上进行分享,只需很少几个步骤,你设计好的表盘就会出现在消费者的手腕上,如果你的表盘中包含了应用复杂功能,消费者同样会被提示安装对应的应用。如果复杂功能对应的应用在当前地区不可用,表盘中的复杂功能将不会生效。

同样值得注意的是一些新的表盘可能不能在老型号的手表上使用,Nike和Hermes的表盘只能在对应的手表上使用

分享出来的表盘文件中包括了颜色,样式,照片和复杂功能在内的所有表盘配置。如果你的表盘包含复杂功能,即使没有安装对应的应用,分享的表盘文件也会包含一个复杂功能的示例入口。

ClockKit中今年添加了新的复杂功能API,使得一个应用可以对应多个表盘上的复杂功能。如果你的复杂功能包含对于用户数据的访问,在分享的表盘文件中可以包含对应的偏好设置。

ClockKit中还添加了一个允许你在APP中弹出安装表盘的API,调用addWatchFace并传入一个预先配置好的表盘文件的路径,然后就会弹出一个弹窗提示用户安装表盘,这个API在WatchOS和iOS的ClockKit中均可以使用,在表盘安装完成后,应用会收到一个来自ClockKit的timeline请求,在这之后我们的复杂功能就能够访问到用户数据了。

我们创建了一个Coffee Tracker的应用,在这个APP的主视图中我们可以看到每天咖啡因的摄入量,这个应用同时包含一个表盘的复杂功能可以现实你当前的咖啡因摄入。

如果我们想要同这个APP的使用者分享一个包含这个复杂功能的表盘,最好的办法就是在Coffee Tracker这个应用中实现表盘分享。

首先我们需要生成一个包含我们这个复杂功能的表盘,然后我们需要将表盘文件和表盘预览导入到我们的应用中,在这之后我会创建一个现实和添加表盘的UI,最后我会为旧型号的手表添加支持。

在Watch应用中我们可以定制一个表盘,在其中添加我们期望的复杂功能,然后通过邮件将表盘文件发送给我自己,邮件的附件中会包含表盘文件和一个表盘的预览图片,我们将这个表盘文件添加到Xcode工程文件中然后将表盘的预览图片添加到Assets文件夹中,这样我们可以在我们的应用中显示这个表盘的预览。

在我们实际使用中,我们可以通过WCSession来进行检测是否用户有配对的手表,然后我们可以只向拥有配对手表的用户提示安装对应的表盘:

var isPaired: Bool {
    if (WCSession.isSupported()) {
        let session = WCSession.default
        session.delegate = self
        session.activate()
        return session.isPaired
    } else {
        return false
    }
}

使用addWatchFace我们首先创建一个指向我们本地表盘文件的URL,然后我们向CLKWatchFaceLibraryaddWatchFace传入我们创建好的URL就可以使用这个API了:

top Created with Sketch.