博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS9新框架—Watch Connectivity(详情:http://ios.itcast.cn/subject/ios9/index.shtml )
阅读量:6948 次
发布时间:2019-06-27

本文共 2314 字,大约阅读时间需要 7 分钟。

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

  2.8与9发送数据的对比。
  我们知道数据交换在8中就有,我们来来回顾一下8是如何进行数据通信的。

  我们知道8只能通过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】8 中 watch 与 iPhone之间通信只能通过 watch主动发起请求,iPhone响应这个请求的方式来完成一次通信,不能够iPhone直接连接watch向watch发送数据。
  9中watch 与iPhone之间通信,可以双向操作,既可以watch主动发送数据到iPhone。也可以iPhone主动发送数据到Watch。
  2】8中发送数据的内容只能为普通的字典数据类型。
  9中不但能发送简单的字典数据,还可以支持发送一些数据(NSData)及文件类型。
        

转载于:https://www.cnblogs.com/keyan1102/p/4884829.html

你可能感兴趣的文章
关于《大道至简》第六章的收获
查看>>
JavaWeb部分面试题
查看>>
mac osx 系统开发php 的一些工具
查看>>
Tcp的三次握手,以及原理详解
查看>>
sprintboot 中占位符及多环境配置
查看>>
Oracle资源
查看>>
你需要一点点CIL
查看>>
java连接mysql的一个小例子
查看>>
laravel queue 修改之后不生效的坑
查看>>
[USACO07JAN]Balanced Lineup
查看>>
[入门OJ3876]怎样学习哲学
查看>>
陶哲軒實分析 習題3.6.9
查看>>
Python国内豆瓣源
查看>>
html页面的局部刷新
查看>>
C#不常见的语法
查看>>
[摘录]高效人士七习惯—以终为始原则
查看>>
[摘录]第4章 不道德的谈判策略
查看>>
IOS 视图传值
查看>>
【转】WEB网站常见受攻击方式及解决办法
查看>>
[转]五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
查看>>