详解iOS 8和OS X Yosemite的Handoff

suiling 2014-10-16 09:47:14 9568
本文来自 星夜暮晨的博客 ,作者 suiling

440.jpg

本节由CocoaChina翻译组成员星夜暮晨(博客)翻译自Handoff in iOS 8 and OS X Yosemite: Explained,敬请勘误。

Handoff是苹果“融合”主题中的重要元素之一,同时也是iOS8和OS X Yosemite中新的“Continuity”特征集的一部分。“Continuity”功能包含了能跨平台兼容的AirDrop、可在iPad和Mac上拨打iPhone电话和处理SMS信息,以及全新的更易使用的连接服务。无论你在做什么工作,无论你想要继续进行工作的设备是什么,苹果都试图通过透明、无缝的操作来实现这个想法,而不是试图通过一系列不同的设备来适应一个界面,也不是以云服务为中心。这是一个以用户为中心的大胆选择,一旦苹果正式提供这项功能,它可能将改变我们使用iPhone、iPad以及Mac的方式。所以,我们不禁要问,Handoff是如何工作的?

在设备上使用相同的iCloud账户

为了让Handoff能够正常工作,你需要在iPhone、iPad或者Mac上使用相同的iCloud账户进行登录。这让Handoff知晓这些设备都属于同一个人——也就是你。由于iCloud账户(Apple ID)也同样被用来备份和恢复、使用iMessage和FaceTime、iCloud电子邮箱和存储在云中的文档,以及其他各种各样的功能,因此,这是一个安全、可靠的方式来确保当前用户和使用的设备不会出现错误匹配。

使用相同的iCloud账户进行登录同样也意味着:如果你的文档存储在iCloud里面,并且可以被所有设备使用,那么Handoff并不会浪费时间和流量来推送这些文件。Handoff仅仅只会推送你当前所进行的任务。

Bluetooth LE 和距离

Handoff同时也需要你的iPhone、iPad或者Mac相互之间处于一个比较近的距离。当设备进入到一定范围内并且您当前正在进行的任务支持Handoff功能,设备将通过Bluetooth LE(低功耗蓝牙4.0)来自动配对。

使用比较近的距离可以让Handoff符合苹果的“以个人为中心”的目的。它将有效地保护你的隐私,比如正在浏览的网站、正在撰写的电子邮件或者消息,或者正在处理的文件。它保证这些任务将被推送到用你的账户登录的设备上,但是不会推送到不在你控制范围内的其他设备上面。比如说,如果你在家里工作,你不需要把你的任务推送到学校的设备上,或者你在咖啡店,你也不需要把任务推送到你的工作电脑上。

距离能够有效的支持便利性和保护隐私,两全其美不是吗?

苹果应用程序和Handoff

404.jpg

到目前为止,苹果已经宣布,Handoff将支持以下应用:

1.邮件

2.Safari

3.Pages

4.Numbers

5.Keynote

6.地图

7.信息

8.提醒事项

9.日历

10.通讯录

有了它们,你就可以在Mac上编写、阅读电子邮件以及网页、编辑文档、展示表格和keynote、地图定位、输入文字、选择一个提醒事项、进行预约、或者查找地址,然后继续在你的iPhone或iPad完成这些工作,反之亦然。

苹果尚未宣布任何多媒体应用可以支持Handoff功能,例如启动Mac上的iTunes播放列表,然后在iTunes音乐应用上继续使用;或者你的iPhone上启动游戏,然后继续在iPad上进行游戏。苹果同样也没有宣布Handoff可以让你从Apple TV中推送一部电影到iPad,如果你想换房间看电影的话。(和AirPlay功能相反,AirPlay可以将你的iPhone、iPad或者Mac上的电影推送到Apple TV上。)

Handoff仍然处于起步阶段,它还有很多不足,但是,路要一步一步的走,来日方长。

第三方应用和Handoff

苹果公司给开发者提供了相同的API(应用编程接口)来开发。开发者需要明确、谨慎地指定需要使用Handoff的任务,比如说写tweet或者阅读RSS文章,并且要保证所涉及到的应用程序都使用同样的开发者Team ID。这能够保护客户的隐私,因此我们就不必担心某个应用程序会影响推送的正常工作。

使用Handoff功能的应用程序必须有注册开发者的签名,并通过App Store的审核,或者在Mac上予以提供。再次重申,Handoff是安全的,甚至具有一定程度的灵活性。

网站和Handoff

QQ截图20141016095008.jpg

Handoff不仅能在应用程序间工作,它同样也能在网站和应用程序间工作。比如说,如果你正在Mac上的Safari浏览iMore.com或者Facebook.com,然后拿着你的iPhone离开了房间,iMore或者Facebook应用会提示你是否接受Handoff——假设开发者实现了这个功能。

开发者可以使用苹果提供的API来认证他们的网站和应用程序,并且将这两者关联起来。这个操作确认了Handoff功能使用的两个终端。

如果要在切换到浏览器中使用,Handoff将从始发设备发送一个URL(统一资源定位符)到你想要恢复工作的设备上面。然后这个设备将打开浏览器,加载这个URL,随后你就可以在浏览器上继续浏览之前看的网页了。

如果要在切换到本地应用中使用,网站上指定的任务将连接到关联的应用程序中的相应位置。即打开Facebook应用,加载你正在浏览的页面,随后你也可以在本地应用中继续浏览之前看的内容了。

持续数据流(Continuation streams)

苹果还表示,开发者可以在两个不同设备的相同应用程序之间双向传输数据流。这使得设备间可以进行持续互动,包括读、写操作。例如,两个设备可以同时处理相同的任务,一个设备增减了文字,另一个设备也会同样进行相同的操作。

开发者和苹果如何利用这个持续数据流功能,还有待观察……

图标显示位置

QQ截图20141016095124.jpg

Handoff基于操作而工作。当一个应用或者浏览器进行加载、应用在后台运行或选项卡切换时,Handoff将会标识当前你正在做的操作——要么编写电子邮件、要么浏览特定的网页、要么编辑Pages文档,等等,随后Handoff将广播这些操作。

在一定距离内的其他设备将会识别该操作并且为其调出相应的图标。

在iPhone或者iPad上,这个图标放置于锁屏界面的左下角,或者放置在多任务选项卡界面(双击Home键得到的页面)中主屏的左边(设备解锁后)。

在Mac上,这个图标放置在Dock的左边,或者放置在应用程序切换栏的右边(按下Command+Tab得到的小窗口)。

当这个图标被选中之后,Handoff会向主设备的任务发出请求。如果你正在云中使用文档,那么只有文档位置会被传输。如果你正在浏览网站,那么只有URL会被传输。否则,无论你在处理什么内容都将会被全部传输过去。一旦所有必要的数据传输完成后(可能是直接通过Wi-Fi连接),应用程序将被运行,并且任务就会在你之前进行的地方运行。

比方说,如果你正在iPhone上编写电子邮件,并且你正在你的Mac的传输范围内,“邮件”应用将会出现在OS X的Dock左边的一个新部分中。单击之后你就可以在OS X中的“邮件”应用中继续编写你之前在iPhone上未完成的邮件了。

如果你正在Mac上使用Keynote,然后拿起你的iPad,你就会看到在锁屏界面的左下方出现了一个Keynote的应用图标。点击它,iPad上的Keynote就会运行,之前你在Mac上的Keynote所看到的内容将会出现在你的眼前。

安全和隐私

苹果尚未说明Handoff是如何确保安全和保护隐私的。不过,由于苹果近期关于安全性和隐私性的历史动作来看,我们有充分的理由对其保持乐观。例如,苹果此前曾解释过AirDrop(另一个在Continuty阵营的服务)是如何确保安全和保护隐私的,这些解释令人印象深刻:

当用户启用AirDrop,一个2048位的RSA身份表示就会被存储在设备上。此外,基于与用户的Apple ID关联的电子邮件地址和电话号码的AirDrop身份标识哈希表将会被创建。

当用户选择AirDrop来共享某个项目时,设备将利用BTLE(Bluetooth LE)发出AirDrop信号。其他近距离的、激活AirDrop的设备将检测这个信号,并和所有者的身份标识哈希表的精简版进行回应。

[...]

Wi-Fi信号将被直接用来进行设备间的数据交流,并不会连接互联网或者建立Wi-Fi热点。

同样地,由于Handoff会在锁屏上显示,如何使用密码、Touch ID继续操作,以及是否允许Handoff在锁屏上显示,都可以在设置选项中进行处理。(出于安全方面考虑,BT LE和距离限制允许支持Handoff设备可以被确定为信任设备。)

开发者资源

苹果在苹果开发者中心提供了一个初级的Handoff编程指南,这份指南详细说明了Handoff是如何工作的,以及如何在第三方应用中实现Handoff。

在苹果的WWDC 2014视频集中同样也提供了很棒的Adopting Handoff in iOS and OS X课程。

结语

Handoff实现了一个不同于微软的“Windows无处不在”以及谷歌的“一切尽在云中”的设备通信方法。借助Handoff,没有任何隐私会被保存在服务器当中。苹果保持了Mac和Mac通信,iPhone和iPad通信的独立性。他们仅仅只是在形式上整合在了一起,但是无论你走到哪里,你设备间的任务都将透明、无缝地进行连接。