watchOS Watch Connectivity
개시하다
이 기사는 이와테(岩手)현립대advent 달력 2016년 10일째 기사다.
워치OS 앱을 수정할 때 워치OS 1에서 사용할 수 있는 프레임워크 중 일부는 워치OS 2와 워치OS 3에서 사용할 수 없는 것으로 나타났다.
예를 들어, SystemConfiguration입니다.framework 및 CFNetwork.프레임워크 등.
나는 이러한 프레임 기능을 사용하는 방법을 고려했다.
Watch Connectivity
Watch Connectivity 프레임워크(Watch Connectivit. 프레임워크)는 아이폰(iOS 앱)과 애플 워치(watch OS 앱) 사이에 데이터 송수신을 제공한다.
OS에서 데이터 송수신을 결정하는 백그라운드 트랜스퍼와 즉시 데이터를 전송하는 인터랙티브 메시지가 있다.
이루어지다
이번에는 Interactive 메시지를 설치합니다.
실행 환경은 다음과 같습니다.
Watch Connectivity 프레임워크(Watch Connectivit. 프레임워크)는 아이폰(iOS 앱)과 애플 워치(watch OS 앱) 사이에 데이터 송수신을 제공한다.
OS에서 데이터 송수신을 결정하는 백그라운드 트랜스퍼와 즉시 데이터를 전송하는 인터랙티브 메시지가 있다.
이루어지다
이번에는 Interactive 메시지를 설치합니다.
실행 환경은 다음과 같습니다.
InterfaceController.swift
import WatchKit
import Foundation
import WatchConnectivity
class InterfaceController: WKInterfaceController, WCSessionDelegate {
override func awake(withContext context: Any?) {
super.awake(withContext: context)
}
override func willActivate() {
super.willActivate()
if WCSession.isSupported() {
// Watch Connectivityをサポートしているとき
let session = WCSession.default()
session.delegate = self
session.activate()
if session.isReachable {
// iPhoneと通信可能のとき
session.sendMessage([:], replyHandler: {(replay) -> Void in
let buttonAction = WKAlertAction(title:"OK", style: .default) { () -> Void in
}
self.presentAlert(withTitle: "タイトル", message: replay.description, preferredStyle: .alert, actions: [buttonAction])
}){(error) -> Void in
print(error)
}
}
}
}
override func didDeactivate() {
super.didDeactivate()
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
}
}
다음은 iOS 설치입니다.AppDelegate.swif
import UIKit
import WatchConnectivity
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate {
@available(iOS 9.3, *)
public func sessionDidDeactivate(_ session: WCSession) {
}
@available(iOS 9.3, *)
public func sessionDidBecomeInactive(_ session: WCSession) {
}
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if WCSession.isSupported() {
let session = WCSession.default()
session.delegate = self
session.activate()
}
return true
}
func applicationWillResignActive(_ application: UIApplication) {
}
func applicationDidEnterBackground(_ application: UIApplication) {
}
func applicationWillEnterForeground(_ application: UIApplication) {
}
func applicationDidBecomeActive(_ application: UIApplication) {
}
func applicationWillTerminate(_ application: UIApplication) {
}
func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) {
if session.isReachable {
// Apple Watchに結果を送信する
replyHandler(["Hello":"World"])
}
}
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
}
}
실행 결과
watchOS 응용 프로그램을 시작합니다.
경고를 표시하고 데이터를 전송합니다.
이때 iOS 애플리케이션을 시작하지 않아도 데이터를 받을 수 있습니다.
이 메커니즘을 사용하면 iOS 앱으로 워치OS가 준비하지 않은 프레임워크 기능을 처리하고 결과를 워치OS 앱에 넘길 수 있다.
Reference
이 문제에 관하여(watchOS Watch Connectivity), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/arthur87/items/289e4ebd0b54f4adec9f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(watchOS Watch Connectivity), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arthur87/items/289e4ebd0b54f4adec9f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)