WatchConnectivity 介绍:告别加载等待

作者:Natasha The Robot,原文链接,原文日期:2015-09-21
译者:小袋子;校对:numbbbbb;定稿:numbbbbb

在 WatchOS 2 上最有价值的新特性就是WatchConnectivity,虽然用户可能看不到,但是这个特性能让你的 WatchOS 应用更加好用。

WatchConnectivity是 WatchOS 2 框架中用于 Watch 应用和 iOS 设备传输数据的。WatchConnectivity 关键的部分是,它使你的应用程序在用户查看之前就拿到必要的数据。这意味着用户想要看你的应用时,他们希望马上看到想要的数据,而不是愚蠢的加载等待。

毕竟, Apple Watch 是一个移动中使用的设备。用户们可能想要看一两眼在 iOS 应用上超级可爱的刷新动画,但显然他们不会忍受在手表上看到这样的动画。设想一下,如果用户每次在他们常规的手表上查看时间,引入眼帘的是一个加载等待界面,那将会非常愚蠢,同理,你的应用如果这么做也一样愚蠢。

现在你不必再担心了,WatchConnectivity完全可以解决这个难题,它可以毫无压力地传输你应用上的数据到 Watch 应用上。整个过程都是无缝透明的,以至于你的用户都察觉不到发生了什么。

让我们开始深入吧!WatchConnectivity有两个部分-后台传输(background transfers)和交互式消息(interactive messaging)。我将会在未来的教程里探究它的每一个部分的更多细节,但是这里只是一个概述,思考传输时应该使用哪一种传输模型:

后台传输

在你的 iOS 或者 Watch 应用不需要马上获得信息时使用后台传输。当然,在你的用户抬起他们的手腕时查看应用里面的最新数据时,它会显示数据,但是此前他们不需要任何数据。

因为后台传输用于传输不是立刻使用数据, Apple 认为使用后台传输的最佳时机是当你需要根据电池容量、网络连接、使用模式传输数据时。

在你的 iOS 和 Watch 应用之间的后台传输数据有三种方式:

应用上下文

当你的 Watch 应用只需要展示最新的信息时,使用应用上下文。例如,当你的Glance显示比分时,用户不会在意两分钟以前的 4-2 比分,他们只在乎现在的比分是 4-4 。另一个例子是交通运输应用,你不需要关心五分钟以前最后的一辆公交车在公交站的左边,他们只关心下一辆公交车什么时候到。

所以应用上下文的工作方式是把数据块排成队列,并且如果在传输之前有一个新的可用数据块,原始的数据将会被新数据取代,然后再传输这个数据,除非它又被其它更新的数据块代替。

Tutorial: Sharing The Latest Data via Application Context

用户信息

用户信息是用于当你需要确认你的所有数据是被传输过的(不像应用上下文)。用户信息的数据是在一个先进先出(FIFO (first-in-first-out)) 队列中顺序传输,所以没有东西被覆盖。

一个例子是你可能想要在一个文本消息的应用中使用它-对于一个完整的会话和上下文环境来说,最后一条信息和第一条信息是同等重要的。如果用户更新了他们简介信息中的一小部分,Watch 简介中也应该同步这些更新。

文件传输

顾名思义,在你的 iOS 和 Watch 应用之间使用文件传输去传输文件,例如图片或者plists。文件传输一个很棒的特性是你可以包含一个meta-data字典,其中包含你的文件名和数据,比如说这样你就可以排序你的图片。

交互式消息

使用交互式消息能够实时地在你的 iOS 和 Watch 应用之间传输数据!一个绝佳的示例就是愤怒的小鸟应用的 Watch 版本和 iPhone 版本-用户点击 Watch,但是小鸟在手机上飞。按钮点击通过交互式消息被传输到手机上了。

这里写图片描述
这里写图片描述

一个需要注意的地方是,交互式消息需要 iPhone 开启"reachable"状态。Apple 文档解释道:

Watch 应用的可达性需要配对的 iOS 设备在重启之后至少解锁一次。

总结

我爱死Kristina Thai’s WatchConnectivity post 里面区别传输的图解了:

这里写图片描述
这里写图片描述

同时,本文参考了 Curtis Herbert 的文章 Getting Data to Your WatchOS 2 App 中最后的 Watch OS 2 observations 部分。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 以前我在乎所有人对我的评价。可我自从看到周乐为所欲为找前任做备胎提升自己能力后,还能人品一致受好评。
    安雅要脱胎换骨阅读 261评论 0 0
  • 今天又超了半盒水果,两盒花生,真是受不了自己,一点自制力都没有,完不成目标了啦!碰上经期,又要停运动三天!收获了做...
    aseeya阅读 211评论 0 0
  • 诗人应该有所秉持。他秉持什么呢?他超越功利,俾倪权势以肯定人性的尊严,崇尚自由和民主;他关怀群众但不为群众口号所指...
    鉛筆羊阅读 252评论 1 4