pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

iPhone與iWatch連接、控制、數據傳遞(Swift)的方法

這篇文章主要介紹了iPhone與iWatch連接、控制、數據傳遞(Swift)的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

最近在做一個項目,涉及到iPhone設備和手表傳輸數據、控制彼此界面跳轉,在網上找了很多資料,發現國內的網站這方面介紹的不多,而國外的網站寫的也不是很全,所以在這寫這篇文章,給大家參考一下,望大神指點一二。

      iPhone和iWatch配對這個不需要多說,百度搜索答案一大堆,這個是前提。

      iPhone與iWatch交互的代碼有兩種情況,取決于iWatch的系統。iWatch OS1與OS2、3的方法不同,在OS1的系統中,iWatch發送數據的代碼如下


let userInfo:[String:String] = ["key":"value"]
WKInterfaceController.openParentApplication(userInfo) { (replyInfo, error) -> Void in
}

      這個函數是發送消息,同時也是接收消息,接收到iPhone的回復是replyInfo。在iPhone端的AppDelegate中,接收消息的代碼:


func application(application: UIApplication, handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?, reply: (([NSObject : AnyObject]!) -> Void)!) {
}

      接收到的消息是userInfo,回復給iWatch的數據是reply。

      以上的代碼僅適用于watchOS1,之后的系統就沒有這個API了,對于OS2或OS3,使用的框架是WatchConnectivity,在這里,我將直接提供我寫的類,并給出介紹和使用方法,大家可以直接復制代碼,在我注釋的地方寫自己的功能便可。

以下是iPhone端的代碼:


import UIKit
import WatchConnectivity
class IwatchSessionUtil: NSObject, WCSessionDelegate {
  //靜態單例
  static let shareManager = IwatchSessionUtil()
  //初始化
  private override init()
  {
    super.init()
  }
  // 連接機制
  private let session:WCSession? = WCSession.isSupported() ? WCSession.default() : nil
  // 激活機制對象
  func startSession(){
    session?.delegate = self
    session?.activate()
  }
  // 檢測到watch端app
  func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
    print("AppleWatch匹配完成")
  }
  // 開始向Watch傳遞數據
  func sessionDidBecomeInactive(_ session: WCSession) {
  }
  // 數據傳遞完了
  func sessionDidDeactivate(_ session: WCSession) {
  }
  // watch側發送數據過來,iPhone接收到數據并回復數據過去
  // message: watch側發送過來的信息
  // replyHandler: iPhone回復過去的信息
  func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
    // 在這里,我們接收到watch發送過來的數據,可以用代理、代碼塊或者通知中心傳值到ViewController,做出一系列操作。
    // 注!?。簑atch側發送過來信息,iPhone回復直接在這個函數里回復replyHandler([String : Any])(replyHandler(數據)),這樣watch側發送數據的函數對應的reply才能接收到數據,別跟sendMessage這個函數混淆了。如果用sendMessage回復,那watch側接收到信息就是didReceiveMessage的函數。
  }
  // iPhone向watch發送數據
  // key: 數據的key值
  // value: 數據內容
  func sendMessageToWatch(key:String,value:Any) {
    session?.sendMessage([key : value], replyHandler: { (dict:Dictionary) in
    // 這里是發送數據后的操作,比如寫個alert提示發送成功
   // replyHandler是watch側didReceiveMessage函數接收到信息后reply回復過來的內容,這里可以編輯自己需要的功能
    }, errorHandler: { (Error) in
      // 發送失敗,一般是藍牙沒開,或手機開了飛行模式
    })
  }
}

調用方法:

1、首先在iPhone的AppDelegate的didFinishLaunchingWithOptions函數中添加代碼

IwatchSessionUtil.shareManager.startSession(),確保WCSession能匹配到watch側的App

              2、發送消息:調用方法IwatchSessionUtil.shareManager.sendMessageToWatch(key: , value: )即可,發送后接收到watch側的回復后的操作,直接在類sendMessage函數中編輯就行

              3、watch側sendMessage發送信息給iPhone,iPhone側didReceiveMessage接收到信息,一系列操作上面已經注釋寫到。

iPhone端的介紹完畢,下面寫watch端的代碼,其實跟iPhone的沒什么區別,這里只是為了把這部分內容寫完全。


import WatchKit
import WatchConnectivity
class WatchSessionUtil: NSObject,WCSessionDelegate {
  // 靜態單例
  static let sharedManager = WatchSessionUtil()
  // 初始化
  private override init()
  {
    super.init()
  }
  // 連接機制
  private let session:WCSession? = WCSession.isSupported() ? WCSession.default() : nil
  // 激活機制
  func startSession(){
    session?.delegate=self
    session?.activate()
  }
  // 檢測到iPhone的父應用
  func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
  }
  // 接收到iPhone端發送過來的信息
  // message: iPhone端發送過來的信息
  // replyHandler: watch端回復給iPhone的內容
  func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
    // 這里也可以通過通知中心發送通知給InterfaceController,進行頁面操作,至于用什么方法大家隨意。注意事項iPhone的代碼里提到了,一樣的性質,這里就不寫了。
  }
  // 向iPhone側發送信息
  func sendMessage(key:String, value:Any){
    session?.sendMessage([key : value], replyHandler: { (reply: [String : Any]) in
      // 信息發送之后,收到iPhone端回復的操作
    }, errorHandler: { (Error) in
      // 發送失敗
    })
  }
}

watch的類添加在Extension的文件夾中,調用方法:

1、ExtensionDelegate文件的applicationDidFinishLaunching函數里寫上WatchSessionUtil.sharedManager.startSession()

2、發送消息:調用方法IwatchSessionUtil.shareManager.sendMessageToWatch(key: , value: )即可,發送后接收到iPhone側的回復后的操作,直接在類sendMessage函數中編輯就行

3、iPhone側sendMessage發送信息給watch,watch側didReceiveMessage接收到信息,一系列操作上面已經注釋寫到。

以上所述是小編給大家介紹的iPhone與iWatch連接、控制、數據傳遞(Swift)的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對html5模板網網站的支持!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

主站蜘蛛池模板: 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 高中学习网-高考生信息学习必备平台| 智慧消防-消防物联网系统云平台 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 氧化铁红厂家-淄博宗昂化工 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 欧景装饰设计工程有限公司-无锡欧景装饰官网 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 5nd音乐网|最新流行歌曲|MP3歌曲免费下载|好听的歌|音乐下载 免费听mp3音乐 | 泰安办公家具-泰安派格办公用品有限公司 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 |