• iOS9新框架—Watch Connectivity(详情:http://ios.itcast.cn/subject/ios9/index.shtml )


     1背景。 Watch Connectivity--专为用来实现Watch与配对iPhone上的文件和数据的来回传输而生。

      2.iOS8与iOS9发送数据的对比。

      我们知道数据交换在iOS8中就有,我们来来回顾一下iOS8是如何进行数据通信的。


      我们知道iOS8只能通过Watch主动向iPhone发送数据,让iPhone做出响应,而不能有一个交互的互动。既然我们说了WatchConnectivity是为文件和数据的来回传输而生,那我们看一下他的通讯图:

      我们看到这样的数据流是双向的,也就是说既可以Watch主动向iPhone发送数据,也可以让iPhone主动向Watch发送数据

      3.WCSession

      通过查看苹果对WatchConnectivity
    <https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html>
         (链接地址:https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html#//apple_ref/doc/uid/TP40015269 <https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WatchConnectivity_framework/index.html>)
          API描述之后,我们发现对于Watch与iPhone其关联连接作用的类是WCSession,接下来我们来就了解一下WCSession,看一看他的使用。


      3.1 WCSession简单介绍

      我们查看WCSession的API(链接地址为:https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WCSession_class/index.html#//apple_ref/occ/cl/WCSession <https://developer.apple.com/library/prerelease/watchos/documentation/WatchConnectivity/Reference/WCSession_class/index.html>)之后,映入眼帘的是这一段代码:

      第一行代码的意思是:Session是永远支持WatchOS的,因此我们是为了检查iOS设置是否支持Session。

      第二行的代码意思是:获取一个默认Session实例

      第三行的代码意思是:设置Session的代理

      第四行的代码意思是:设置Session为活跃状态

      3.2WCSession的状态

      1】session.paired  是否已与设备配对

      2】session.watchAppInstalled  watchApp是否已安装

      3】session.complicationEnabled  complication 是否可用

      4.通讯的分类--WatchConnectivity框架的通信方式有两种模式,一种是后台传输,另一种是交互式消息。

      1】后台传输

      2】互动消息

      4.1 后台传输

      后台传输模式是最常用的通信模式,面向内容与用户交互,主要用于传输非即时的内容,体现在内容可由操作系统智能传输(操作系统允许发送方可退出,选择传输时机,支持接收者下次启动时发送),并将内容以队列方式发送。

      类型:

      应用上下文内容传输(Application Context)

      用户数据传输(UserInfo)

      文件传输 (File)

      三者数据传输的代码类似,我们只以File传输为例,写一下示例代码:

      传输:

      获取正在传输的文件内容:

      接收:

      4.2交互消息

      1】效果

      2】实现步骤

      获取默认WCSession 并开启

      实现WCSessionDelegate接收回调方法

      发送消息并处理响应消息

      接收端处理接收和响应(可选)

      3】代码

      开启Session以及发送消息并处理响应消息代码

      激活Session

      实现WCSessionDelegate接收回调方法

      5.最后我们通过对比来回顾和深化一下Watch Connectivity框架

      1】iOS8 中 watch 与 iPhone之间通信只能通过 watch主动发起请求,iPhone响应这个请求的方式来完成一次通信,不能够iPhone直接连接watch向watch发送数据。

      iOS9中watch 与iPhone之间通信,可以双向操作,既可以watch主动发送数据到iPhone。也可以iPhone主动发送数据到Watch。

      2】iOS8中发送数据的内容只能为普通的字典数据类型。

      iOS9中不但能发送简单的字典数据,还可以支持发送一些数据(NSData)及文件类型。

            





  • 相关阅读:
    virtualenvwrapper GitBash下的配置使用
    MySQL主从复制
    Nginx
    LVS
    MySQL
    Docker Swarm
    flask数据库操作
    flask 数据库迁移
    pytest.mark.parametrize 详解
    redis作为变量池在接口自动化中的应用
  • 原文地址:https://www.cnblogs.com/keyan1102/p/4884829.html
Copyright © 2020-2023  润新知