iOS アプリから電話をかける方法 (Swift)

ここでは、Swift で iOS アプリから電話をかける方法をご説明します。

今回は、Call Test というボタンをタップした時に、以下のように指定した電話番号に電話をかけるアプリを作ります。

iOS アプリから電話をかける方法 1

電話をかける iOS アプリの準備をする

まずはテスト用にボタンをタップして、電話をかけるための、簡単な iOS アプリを作ります。

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

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

iOS アプリから電話をかける方法 2


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

iOS アプリから電話をかける方法 3

import UIKit

class ViewController: UIViewController {

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

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


Swift で iOS アプリから電話をかける方法

それでは、Swift で iOS アプリから電話をかけるコードを書いていきましょう。

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

@IBAction func callTestTapped(_ sender: Any) {
    let phoneNumber = "+81351598200"
    guard let url = URL(string: "tel://" + phoneNumber) else { return }
    UIApplication.shared.open(url)
}

2 行目で定義した phoneNumber に電話をかけます。値は +81-3-5159-8200 のようにハイフンが入っていても大丈夫です。

3 行目では、tel:// を指定して、電話をかけるための URL を生成しています。guard let で生成に失敗したら return するようにしています。

4 行目で UIApplication.shared.open() メソッドに、生成した url を渡して、電話をかけるアプリを起動しています。

インストールされるデバイスに tel:// をハンドルできるアプリが存在している前提です。


Swift で iOS アプリから電話をかけるコードはこれだけです。

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


iOS アプリを iPhone にインストールしてテストする

電話をかけるテストはシミュレーターでできないので、電話がかけられる iPhone にインストールしてテストします。

作った iOS アプリを iPhone にインストールする方法がわからない方は「Xcode からアプリを iPhone にインストールして実行する方法」をご覧ください。


iPhone を指定してこのアプリを実行すると、以下のような画面が表示されます。

iOS アプリから電話をかける方法 4


Call Test ボタンをクリックすると、電話する確認ダイアログが出てきます。

iOS アプリから電話をかける方法 5


Call +81 3 5159 8200 のほうをタップすると、電話がかかります。

iOS アプリから電話をかける方法 6


以上、Swift で iOS アプリから電話をかける方法をご説明しました。

© 2024 iOS 開発入門