iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

この記事では、Swiftを使用してiOSアプリからプログラムによって電話をかける方法を、手順を追ってわかりやすく解説します。

それでは早速始めましょう。

Step 1:プロジェクトの作成

Xcodeを開き、「File」→「New」→「Project」を選択して「Single View Application」テンプレートで新規プロジェクトを作成します。プロジェクト名は「MakeCall」としましょう。

Step 2:UI部品の配置

「Main.storyboard」を開き、下の画像のようにテキストフィールド(UITextField)とボタン(UIButton)を1つずつ画面上に配置します。

Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

Step 3:アウトレットの接続

配置したテキストフィールドに対して@IBOutletを作成し、phoneNumberTextfieldという名前を付けます。

Step 4:アクションメソッドの作成

次に、発信ボタン用のアクションとして@IBActionメソッドcallButtonClickedを作成し、ボタンと接続しておきます。

Step 5:発信処理の実装

電話をかけるには、iOSが提供しているURLスキーム「tel://」とUIApplicationクラスのopenURLメソッドを利用します。callButtonClickedメソッド内に以下のコードを追加してください。

if let url = URL(string: "tel://\(phoneNumberTextfield.text!)"),
   UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

このコードでは、まずテキストフィールドに入力された電話番号からURLオブジェクトを生成し、canOpenURLメソッドで発信可能かどうかを確認したうえで、openメソッドを呼び出しています。

Step 6:アプリの実行

アプリを実行し、下の画像のように発信したい電話番号をテキストフィールドに入力します。

Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

Step 7:確認ダイアログの表示

発信ボタンをタップすると、「Call(発信)」と「Cancel(キャンセル)」の選択肢が表示されたアラートが出ます。

Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

Step 8:発信の完了

アラート内の発信ボタンをタップすると、入力した番号宛てに実際に電話がかけられます。

Swiftを使ってiOS 10アプリから電話をかける方法【ステップ解説】

注意点

なお、telスキームによる発信は実機でのみ動作します。シミュレーターでは通話機能がサポートされていないため、必ずiPhoneなどの実機デバイスでテストを行ってください。

  1. Androidでインテントを使用して電話をかける方法【サンプルコード付き】

    この記事では、Androidアプリからインテント(Intent)を使用して電話をかける方法を解説します。ACTION_DIALアクションを利用することで、端末のダイヤラー画面を起動し、指定した電話番号を自動入力した状態で表示できます。 ステップ1:新規プロジェクトの作成 Android Studioを開き、「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力し、プロジェクトのセットアップを完了させましょう。 ステップ2:レイアウトファイルの編集 res/layout/activity_main.xmlに以下のコードを追加します。ここでは、タッ

  2. Macから電話をかける・受ける方法|iPhoneとの連携設定を徹底解説

    iPhoneをお持ちなら、Macでも電話の発着信が可能です。通話はiPhoneを経由して行われるため、相手にはいつもと同じ電話番号で表示され、Macで話していることには気づかれません。 この記事では、Macで電話を発着信できるようにする設定方法を解説します。設定を済ませておけば、iPhoneが家の別の部屋で鳴っていても、カバンの奥にしまわれたままでも、Macに通知が表示され、そのまま応答できるようになります。 また、ちょっとした用件で電話をかけたいときも、わざわざiPhoneを取り出す必要はありません。Macから直接発信できます。 通話はあくまでiPhone経由で行われるため、通話時間は通常ど