黑马程序员技术交流社区

标题: iOS9新框架—Watch Connectivity [打印本页]

作者: 柳柳桑    时间: 2015-9-10 11:08
标题: iOS9新框架—Watch Connectivity

iOS9新框架—Watch Connectivity

——齐瑞华

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#//apple_ref/doc/uid/TP40015269
)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
)之后,映入眼帘的是这一段代码:

第一行代码的意思是:Session是永远支持WatchOS的,因此我们是为了检查iOS设置是否支持Session。
第二行的代码意思是:获取一个默认Session实例
第三行的代码意思是:设置Session的代理
第四行的代码意思是:设置Session为活跃状态


3.2、WCSession的状态
1】        session.paired  是否已与设备配对
2】        session.watchAppInstalled  watchApp是否已安装
3】        session.complicationEnabled  complication 是否可用

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


4.1 后台传输
  后台传输模式是最常用的通信模式,面向内容与用户交互,主要用于传输非即时的内容,体现在内容可由操作系统智能传输(操作系统允许发送方可退出,选择传输时机,支持接收者下次启动时发送),并将内容以队列方式发送。
   类型
       应用上下文内容传输(ApplicationContext)
       用户数据传输(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)及文件类型


作者: msm1374    时间: 2015-9-10 16:13
IOS,加油
作者: malong0517    时间: 2015-9-10 16:39
又是新知识啊· 貌似要学的真多
作者: 408205555    时间: 2015-9-10 16:56
技术解析的太快了
作者: shanghui    时间: 2015-9-10 16:58
iOS很牛,安卓也要加油了↖(^ω^)↗
作者: oxzjsku    时间: 2015-9-10 17:47
虽然现在看不太懂,但我相信用不了多久了,嘿嘿
作者: veggiegfei    时间: 2015-9-10 18:28
要学的很多啊,高科技面前每个人都是屌丝
作者: 余丽丽    时间: 2015-9-10 18:30
学无止境
作者: zhuai68    时间: 2015-9-10 19:49
这个行业就不断学习的过程,新的技术出来一方面是给我们带来新奇的体验感受,另一方面是要求开发者不断是学习适应,做出的东西真的是足够便利吸引人。要学习的东西很多,大好基础,不断学习。
作者: Joker_999    时间: 2015-9-10 20:04
黑马94腻害!!!!
作者: a631082744    时间: 2015-9-10 20:07
要好好学习
作者: 960743995    时间: 2015-9-10 20:16
创新永不停止
作者: chensc    时间: 2015-9-10 21:32
学习学习!
作者: 魏武    时间: 2015-9-11 09:55
得好好学习下了
作者: itufo    时间: 2015-9-11 11:07
Apple 。。。。。。。。
作者: chensc    时间: 2015-9-12 07:14
学习学习!
作者: albus33    时间: 2015-9-12 08:09
深圳什么时候开IOS班
作者: 安若曦    时间: 2015-9-12 09:33
暂时看不懂,mark再说
作者: 郝志学    时间: 2015-9-12 21:22
GG
作者: 永恒篆刻    时间: 2015-9-16 11:12

又是新知识啊· 貌似要学的真多
作者: tangchao5206    时间: 2015-9-23 08:47
好东西。。。。。。。。。。。。
作者: 摆摆    时间: 2015-9-23 09:10
黑马牛逼!
作者: mac    时间: 2015-9-23 10:20
学海无涯!!!
作者: hejianchun    时间: 2015-9-23 10:26
好吧我承认我毛都没看懂!!!
作者: Blcak_Horse_Sam    时间: 2015-9-23 10:31
不错不错
作者: liuch111    时间: 2015-9-23 11:39
不明觉厉
        ....
作者: normalwzh    时间: 2015-11-11 19:37
好东西,先下了再看
作者: ToBeJeek1    时间: 2015-11-17 23:45
这个方向前途光明啊
作者: 649685603    时间: 2015-11-18 22:02
又是新知识啊· 貌似要学的真多
作者: zhecipinle    时间: 2015-11-21 20:40
很给力呀,留着看,赞一个!
作者: 453702877    时间: 2015-11-21 21:01
知识就是力量啊
作者: lixiang73033    时间: 2015-11-21 21:08
新技术必学
作者: 1170191405    时间: 2015-11-21 21:36
支持支持
作者: cc_2436    时间: 2015-11-22 16:34
新知识66666666666啊!
作者: abba008    时间: 2015-11-22 19:51
顶!!!!!!
作者: 453702877    时间: 2015-11-22 19:58
6666666666666666
作者: 夜神月No1    时间: 2015-11-23 13:47
新知识看来要尽快掌握了
作者: Mr.Yan    时间: 2015-11-23 23:36
看起来就非常高大上!目前知识并不能理解.不过还是顶一下!
作者: 刘邓诏初    时间: 2015-11-24 00:07
签到签到
作者: 小布丁当    时间: 2015-11-24 21:49
学海无涯    勤学多思   送黑马币   加油  黑马
作者: 马尔代夫的日出    时间: 2015-11-24 21:52
不错,,,,,,,,,,,,,,,
作者: 453702877    时间: 2015-11-24 22:14
看见新的就进来。。。
作者: daoxiangheima    时间: 2015-12-10 22:15
写得真好!
作者: cxk    时间: 2015-12-11 16:08
要学习的还很多呢,要好好努力咯 ,加油
作者: 金麟岂是池中物    时间: 2015-12-11 21:31
现在的水平根本看不懂,先收藏了。
作者: 后知后觉4778    时间: 2015-12-11 21:34
技术和知识都在不停的更新,对我们提出了更高的要求,加油
作者: u37kl    时间: 2016-2-20 14:01
又有新知识了
作者: tt黑马    时间: 2016-2-20 21:27
iOS又有新知识啦。学iOS的加油吧
作者: Mr.Bozi    时间: 2016-2-21 12:40
与时俱进




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2