WCSession

WCSession主要用于促进iOS和watchkit中的app交流信息,可快速立刻传递信息。当一边处于后台状态时,另一端传输数据,此时所有业务会在后台执行。

Configuring and Activating the Session

创建和启动session可使用如下代码

if WCSession.isSupported() {
    let session = WCSession.default()
    session.delegate = self
    session.activate()
}

然后通过delegate获取相关信息。

Supporting Communication with Multiple Apple Watches

当用户切换watch时会发生如下生命周期变化。


Symbols

1 Getting the Default Session

// 是否支持
open class func isSupported() -> Bool
// 获取默认session
open class func `default`() -> WCSession

2 Configuring the Session

// 代理
weak open var delegate: WCSessionDelegate?
// 激活session
open func activate()
// 获取session状态
@available(iOS 9.3, *)
open var activationState: WCSessionActivationState { get }

3 Getting the Paired Device Information

// 设备是否配对watch
open var isPaired: Bool { get }
// Watch app是否安装
open var isWatchAppInstalled: Bool { get }
// 并发是否可用
open var isComplicationEnabled: Bool { get }
// 存放配对信息的地址
open var watchDirectoryURL: URL? { get }

4 Determining the Session’s Reachability

// 能否传递信息
open var isReachable: Bool { get }

5 Managing Background Updates

// 获取信息
open var applicationContext: [String : Any] { get }
// 更新信息
open func updateApplicationContext(_ applicationContext: [String : Any]) throws
// 获取最后更新的信息
open var receivedApplicationContext: [String : Any] { get }

6 Sending Messages

// 发送[String : Any]信息
open func sendMessage(_ message: [String : Any], replyHandler: (@escaping ([String : Any]) -> Swift.Void)?, errorHandler: (@escaping (Error) -> Swift.Void)? = nil)
// 发送data信息
open func sendMessageData(_ data: Data, replyHandler: (@escaping (Data) -> Swift.Void)?, errorHandler: (@escaping (Error) -> Swift.Void)? = nil)

7 Updating Complication Data

// 剩下的未发送的并发数
@available(iOS 10.0, *)
open var remainingComplicationUserInfoTransfers: Int { get }
// 并发传输信息
open func transferCurrentComplicationUserInfo(_ userInfo: [String : Any] = [:]) -> WCSessionUserInfoTransfer

8 Transferring Data in the Background

// 传输信息
open func transferUserInfo(_ userInfo: [String : Any] = [:]) -> WCSessionUserInfoTransfer
// 正在船速的WCSessionUserInfoTransfer数组
open var outstandingUserInfoTransfers: [WCSessionUserInfoTransfer] { get }

9 Transferring Files in the Background

// 是否有未发送的数据
@available(iOS 10.0, *)
open var hasContentPending: Bool { get }
// 发送文件
open func transferFile(_ file: URL, metadata: [String : Any]?) -> WCSessionFileTransfer
// 获取正在发送的文件
open var outstandingFileTransfers: [WCSessionFileTransfer] { get }

 


Appendix

WCSession

Revision History

时间描述
2016-10-09博文完成

CSDN:http://blog.csdn.net/y550918116j

GitHub:https://github.com/937447974

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值