WatchConnectivity是watchOS2里iPhone与AppleWatch通信的基础框架,作为开发AppleWatch应用的必学内容,我在学习后进行了小小的归纳总结。
初始化设置
WatchConnectivity的原理是iPhone伴侣应用和AppleWatch上运行的WatchKit Extension之间通过WCSession会话进行通信。
当前Controller若需要响应WatchConnectivity的消息需要遵循WCSessionDelegate协议。
初始化时需要激活会话代理(iPhone应用和WatchKitExtension里都要激活),代码如下:
if WCSession.isSupported() {
let session=WCSession.defaultSession()
session.delegate=self
session.activateSession()
}
会话状态
为了了解iPhone应用与Watch应用的会话状态,我们可以通过一些属性去判断,注意这些操作只能在iPhone应用里进行。
1.检查是否配对
AppleWatch是否与iPhone配对,可以通过session.paired属性的布尔值进行判断
2.检查watchapp是否已安装
即使已配对,watchapp也可能未安装成功,通过session.watchAppInstalled属性的布尔值可以得知此状态。另外,watchapp安装成功就会在手表上建立相应app的目录,因此session.watchAppInstalled==false效果等同于watchDirectoryURL !