LoginSignup
10
11

More than 5 years have passed since last update.

Handoffを利用してSafariでウェブページを開く

Last updated at Posted at 2015-05-07

はじめに

Hnadoffとは、iOS 8を搭載したデバイスとOS X YosemiteをインストールしたMacが近くにあれば、一方のデバイスで作業した内容をもう一方のデバイスに引き継ぐ機能です。
例えば、iPhoneで書き始めたメールの続きをMacで書き上げることができます。

Apple - iOS 8 - 連携

この機能を自分のアプリに組み込むことができます。

HandoffにはアプリからSafari、アプリからアプリ、Safariからアプリの3種類があります。
今回は一番簡単なHandoffを利用してアプリからSafariでウェブページを開いてみます。

Handoffに対応したiOSデバイスとMacが必要です。
iOSデバイスとMacで同じApple IDを使ってサインします。
iOSデバイスとMacのWi-FiとBluetoothをオンにします。

iPhoneから

iOSアプリにHandoffを実装してみます。

ViewController.swift
import UIKit

class ViewController: UIViewController {

    var activity:NSUserActivity = NSUserActivity(activityType: "com.example")
    override func viewDidLoad() {
        super.viewDidLoad()

        self.activity.webpageURL = NSURL(string: "http://www.google.com/")
        self.activity.title = "Google"
        self.activity.becomeCurrent()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

実行するとOS XのDockにiPhoneマークがついたSafariが表示されます。
クリックするとSafariが起動してウェブページ(今回は http://www.google.com/ )が開きます。

Handoff1

Apple Watchから

次にApple Watchのアプリに実装してみます。

InterfaceController.swift
import WatchKit
import Foundation


class InterfaceController: WKInterfaceController {

    override func awakeWithContext(context: AnyObject?) {
        super.awakeWithContext(context)


    }

    override func willActivate() {
        super.willActivate()

        self.updateUserActivity("com.example", userInfo: nil, webpageURL: NSURL(string: "http://www.google.com/"))
    }

    override func didDeactivate() {
        super.didDeactivate()
    }

}

NSUserActivityではなくfunc updateUserActivity(_ type: String, userInfo userInfo: [NSObject : AnyObject]?, webpageURL webpageURL: NSURL?) を利用します。

Apple Watch(実機)で実行します。iPhoneのロック画面の左下にSafariのアイコンが表示されます。
Safariのアイコンを上にスワイプするとSafariが起動してウェブページが開きます。

Handoff2

このとき、OS XのDockにはApple WatchマークがついたSafariが表示されます。

Handoff3

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11