Swift で URL を既定のブラウザで開く方法

ここでは、Swift で URL を既定のブラウザで開く方法をご説明します。

今回は、OPEN URL というボタンをタップした時に、以下のように指定した URL (https://www.swift.org/) を既定のブラウザで開くアプリを作ります。

Swift で URL を既定のブラウザで開く方法 1

URL を開くiOS アプリの準備をする

まずはテスト用にボタンをタップして、URL を既定のブラウザで開くための、簡単な iOS アプリを作ります。

新規アプリの作り方、ボタンの追加の方法、アクションの作り方などがわからない方は「基本的な iOS アプリの作り方」をご覧ください。

Xcode で [iOS] の [App] の新規プロジェクトを作成します。

デザインや場所などは適当で良いので、Main ストーリーボードの View Controller に Button をひとつ追加します。

Swift で URL を既定のブラウザで開く方法 2


そのボタンから、openURLTapped という名前で TouchUpInside のアクションを作っておきます。

Swift で URL を既定のブラウザで開く方法 3

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    @IBAction func openURLTapped(_ sender: Any) {
    }
}

Swift で iOS アプリから URL を指定してブラウザを開く方法

それでは、Swift で iOS アプリから URL を既定のブラウザで開くコードを書いていきましょう。

iOS アプリから URL を開くには、次のような UIApplication の open() メソッドを使います。

func open(_ url: URL, 
   options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], 
   completionHandler completion: ((Bool) -> Void)? = nil)

一つ目の引数の url は必須で、options と completionHandler はオプショナルです。

ただ、url をブラウザで開くだけであれば、url だけ指定すれば大丈夫です。


先ほど、作った ViewController.swift の openURLTapped() を次のように変更します。

@IBAction func openURLTapped(_ sender: Any) {
    guard let url = URL(string: "https://www.swift.org") else { return }
    UIApplication.shared.open(url)
}

2 行目で URL の文字列から、URLオブジェクトを生成しています。guard let で生成に失敗したら return するようにしています。

3 行目で UIApplication.shared.open() メソッドに、生成した url を渡して、既定のブラウザを起動して、URL で指定したウエブページを開いています。


Swift で iOS アプリから URL を既定のブラウザで開くコードはこれだけです。

info.plist に、アクセス許可などを追加する必要はありません。


デバイスにブラウザのアプリがインストールされていないことはあまりないと思います。

ですが、念の為、URL をハンドルできるアプリがインストールされているか確認したい時は、UIApplication.shared.canOpenURL(url) メソッドで確認することができます。


iOS アプリをシミュレータにインストールしてテストする

作った iOS アプリをシミュレータにインストールしてテストします。


シミュレータを指定してこのアプリを実行します。

Swift で URL を既定のブラウザで開く方法 4


アプリが起動すると、以下のような画面が表示されます

Swift で URL を既定のブラウザで開く方法 5


OPEN URL ボタンをクリックすると、デフォルトのブラウザのサファリが起動し、https://www.swift.org のページが表示されます。

Swift で URL を既定のブラウザで開く方法 6


Google Chrome をデフォルトのブラウザに設定している場合は、Chrome が起動して、https://www.swift.org のページが表示されます。


以上、Swift で URL を既定のブラウザで開く方法をご説明しました。

© 2024 iOS 開発入門