Handoff로 아이폰에 애플워치 작업 이관

5879 단어 WatchKitiOS

한돌프


한돌프는 iOS 8과 OS X10.10에서 추가된 기능이다.
Handoff Programming Guide는 다음과 같다.
Handoff is a capability introduced in iOS 8 and OS X v10.10 that transfers user activities among multiple devices associated with the same user.
한돌프 기능을 통해 같은 사용자에 연결된 여러 장치 사이에서 작업(Activity)을 계승할 수 있다.

Apple Watch에 적용


애플워치에서도 이 한돌프 기능을 사용할 수 있다.예를 들어 애플워치에서 읽은 블로그 글을 아이폰에 직접 올려 계속 읽을 수 있다.

설치 방법


예를 들어 애플워치에서 기사 번호 3(내부 ID의 소지 방법article_id = 3의 글을 읽었다.팔짱을 끼고 기사를 계속 읽는 것도 지쳤기 때문에 아이폰 쪽에서 책을 계승하는 예를 생각해 보겠습니다.

WatchKit 측면 설치


사용자가 언제든지 업무를 인수할 수 있도록, 글이 표시될 때 다른 장치에 '사용자가 글 번호 3을 읽고 있습니다' 라는 이벤트를 알립니다.코드는 다음과 같습니다.
NSDictionary *userInfo = @{@"article_id" : @"3",
    @"category" : @"sports"};
[self updateUserActivity:@"com.example.watch" userInfo:userInfo webpageURL:nil];
이 예에서 다른 장치article_id=3, category=sports에 대한 정보를 알렸다.(category는 무의식중에 붙인 것이니 신경 쓰지 마세요.)
updateUserActivity:의 첫 번째 매개 변수에서 수신 측면에서 활동하는 문자열(activityType)을 지정합니다.이는 이벤트 종류에 따라 수신자 처리를 전환하기 위해 사용된 것으로 여겨진다.
참고로 userInfo에서nil을 지정할 수 없음을 주의하세요.만약nil을 설정하면 프로그램이 붕괴될 수 있습니다.

아이폰 측 설치


참고: 현재 시뮬레이터를 통해 Handoff 기능을 테스트할 수 없습니다.애플워치가 이 글을 쓸 때(2/27)는 아직 발매되지 않아 실제 기기로 테스트를 할 수 없다.따라서 다음 메시지는'실기로 이렇게 행동해야 한다'는 예상 내용이다.일단 실제 컴퓨터가 생기면 이 내용도 업데이트될 것이다.
Info.plist의 NSUserActivityTypes에서 방금 지정한 activityType를 설정합니다.

이렇게 하면 애플워치에서 한돌프를 받을 수 있지만 워치키트 측이 실행updateUserActivity:만 하면 아이폰 앱이 작동하지 않는다.사용자는 의식적으로 아이폰을 들고 잠금 화면을 켜야 한다.
아이폰이 다른 장치에서 이벤트를 받았을 때 아래 그림과 같이 잠금 화면 왼쪽 아래에 원본 프로그램의 아이콘을 표시합니다.손가락으로 이 아이콘을 위로 들어올리고userInfo 정보를 전달한 상태에서 해당하는 프로그램을 시작합니다.

이때 AppDelegate의 다음 방법을 "AppDelegate"라고 합니다.
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler
{
    // 記事番号を取り出す
    NSString *articleId = userActivity.userInfo[@"article_id"];

    // 記事を画面に表示する処理を書いていく
    
}
이 방법에 써서 문장의 처리를 나타내다.
세 번째 파라미터restorationHandler도 상당히 중요합니다. 설명하면 길어집니다. 관심 있는 분들은 구글에 가보세요.

최후


이번에는 한돌프에서 애플워치 작업을 아이폰으로 이관하는 방법을 설명했다.
또 한돌프를 이용해 글랜스와 푸시노티픽션에서 왓치 앱에 캠페인을 알릴 수도 있다.캘런스에 표시된 내용을 왓치 앱에 전달하고 싶을 때 편리하다.

Glance→Watch App의 이벤트 알림@haranicle씨는 아래 글에서 자세히 설명한다.(자꾸 참고하라고)
WatchKit Handoff

참조 링크

  • WatchKit Framework Reference
  • Handoff Programming Guide
  • WatchKit Handoff
  • 좋은 웹페이지 즐겨찾기