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

【Swift入門】iOSアプリからテキストメッセージ(SMS)を送信する方法を徹底解説

iOSアプリ内でテキストメッセージを送るには?

このチュートリアルでは、Swiftを使用したiOSアプリケーションからテキストメッセージ(SMS)を送信する方法を詳しく解説します。ユーザーの電話番号からメッセージを直接送信することはアプリ単体ではできませんが、事前に作成したメッセージ本文を受信者に表示し、ユーザーがその内容を確認・編集した上で送信できる仕組みを実装できます。

MFMessageComposeViewControllerとは

今回使用するのは、MFMessageComposeViewControllerクラスです。このクラスを利用すると、アプリ内で標準的なメッセージ作成画面を表示できます。

メッセージ作成画面を表示する前に、送信したい初期メッセージや宛先(受信者)のリストをあらかじめ設定しておくことが可能です。ユーザーは後からこれらの内容を自由に変更できます。

なお、このメッセージ作成画面はメッセージの配信を保証するものではありません。あくまで初期メッセージを作成してユーザーの承認を求めるためのインターフェースです。ユーザーがキャンセルを選択した場合、メッセージとその内容は破棄されます。ユーザーが送信を選択した場合は、メッセージアプリが送信処理を担当します。

実装手順

ステップ1:プロジェクトの作成

Xcodeを開き、「New Project」→「Single View Application」を選択します。プロジェクト名は「MailComposer」としましょう。

ステップ2:ボタンの配置

Main.storyboardを開き、ボタンを追加して「Send Message」という名前を付けます。制約(オートレイアウト)として「コンテナ内で水平・垂直方向に中央揃え」を設定し、幅100ポイント、高さ50ポイントに指定してください。

ステップ3:IBActionの作成

ViewController.swiftに移動し、ボタン用のIBActionを作成します。名前は「sendMessage」としましょう。

@IBAction func sendMessage(_ sender: Any) {
}

ステップ4:デリゲートプロトコルの追加

ViewControllerクラスに「MFMessageComposeViewControllerDelegate」プロトコルを追加し、プロトコルに準拠するためのスタブメソッドを実装します。また、ViewController.swiftの先頭で「MessageUI」フレームワークをインポートしてください。

ステップ5:メッセージ画面表示メソッドの実装

viewDidLoadの下に新しいメソッド「displayMsgInterface」を作成し、以下のコードを貼り付けます。このメソッドはMFMessageComposeViewControllerを表示し、宛先とメッセージ本文の初期設定を行う役割を担います。

func displayMsgInterface() {
    let messageCompose = MFMessageComposeViewController()
    messageCompose.messageComposeDelegate = self
    // 宛先を設定
    messageCompose.recipients = ["9401234567"]
    // メッセージ本文を設定
    messageCompose.body = "Hey! I just learned how to send message using iOS App."
    // モーダルでViewControllerを表示
    if MFMessageComposeViewController.canSendText() {
        self.present(messageCompose, animated: true, completion: nil)
    } else {
        print("You cannot send messages.")
    }
}

ステップ6:デリゲートメソッドの実装

以下のコードをデリゲートメソッド「didFinishWithResult」に追加します。

func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result:
MessageComposeResult) {
    self.dismiss(animated: true, completion: nil)
}

ステップ7:メソッドの呼び出し

最後に、「viewDidLoad」から「displayMsgInterface」メソッドを呼び出します。

以上で完成です!それでは実行してみましょう。

動作確認の注意点

実際の動作を確認するには実機(iPhone)が必要です。シミュレーターではテキストメッセージの送信機能が利用できないためご注意ください。

  1. Windows 10でhostsファイルを編集する方法とその活用シーン

    Windows 10には、古くからのコンピューティング標準である「hostsファイル」が今も残されています。hostsファイルとは、ドメイン名(例:「onmsft.com」)を任意のサーバーのIPアドレスに対応付ける(マッピングする)ための仕組みです。 Windowsは、ホスト名を使ってネットワーク接続を行うたびにhostsファイルを参照します。ファイル内に該当するホスト名のエントリが見つかれば、そこに指定されたサーバーへ接続します。見つからない場合――つまり大多数の場合――は、DNS(ドメインネームシステム)によってホスト名を解決します。DNSとは、インターネット上でドメイン名の背後にあるサ

  2. Microsoft TeamsにZoomを追加する方法と導入するメリット

    ZoomとMicrosoft Teamsは、現在もっとも人気のあるビデオ会議ソリューションの2つです。それぞれ特徴が異なりますが、実はこの2つはうまく連携できることをご存じでしょうか。最近では、ZoomをTeamsに直接統合できるようになり、Teams内の常設の「Zoom Meetings」タブから、Zoomミーティングの管理や、ミーティングの開始・スケジュール設定・参加、画面共有などがまとめて行えるようになりました。そこで本記事では、Microsoft 365ガイドの一環として、TeamsにZoomを追加する具体的な手順をご紹介します。ステップ1:前提条件を確認するTeamsにZoomを追加