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

別のアプリから任意のiPhoneアプリを起動する方法|URLスキームの使い方を徹底解説

iOSでは、アプリ内からリンクや特定の操作をきっかけに、他のアプリを開くことができます。たとえば、電話番号をタップすると発信画面が表示されたり、定型文入りのメール作成画面やSMS送信画面へ移動したりすることが可能です。ただし、この機能はすべてのアプリで使えるわけではなく、一部のアプリに限られています。

正確には、URLスキーム(URL Scheme)が登録されているアプリだけが、別のアプリから起動できます。たとえば、自作アプリからSMS画面を開きたい場合でも、登録済みのURLスキームを利用すれば実現可能です。

ここでは、URLスキームで起動できる主なアプリと、それぞれの開き方を詳しく解説します。

iOSで電話アプリ(ダイアラー)を起動する方法

アプリから指定した番号に発信するには、「tel://」の後ろに電話番号を連結したURLスキームを使用します。このアクションが実行されると、端末のダイヤラー画面が立ち上がります。

まずは、ダイヤラーを開くためのURLを生成します。

URL(string: "tel://\(number)"), UIApplication.shared.canOpenURL(url)

電話をかける関数の実装例は以下のとおりです。

func callNumber(number: String) {
    if let url = URL(string: "tel://\(number)"),
    UIApplication.shared.canOpenURL(url) {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url)
        } else {
            UIApplication.shared.openURL(url)
        }
    }
}

注意点:canOpenURLを使うためのInfo.plist設定

iOS 9以降はセキュリティ上の制約により、canOpenURL(_) で判定できるURLスキームは、事前に宣言されたものだけに限られます。対象のスキームは、Info.plist の LSApplicationQueriesSchemes キーに配列として登録しておきましょう。未登録のスキームに対しては canOpenURL が常にfalseを返すため、必ず設定が必要です。

同じ要領で、その他のアプリもURLスキーム経由で開くことができます。代表例を以下にまとめました。

主要アプリのURLスキーム一覧

  • WhatsApp: https://api.whatsapp.com/send?phone=\(mobile_number)
  • 連絡先: contacts://
  • iBooks: ibooks://
  • iTunes U: itms-itunesu://
  • 写真: photos-redirect://
  • Safari(Web検索): x-web-search://
  • Facebook: fb://
  • Google Chrome: googlechrome://
  • Messenger: fb-messenger://
  • Skype: skype://
  • Twitter: twitter://

これらのURLスキームを活用すれば、ユーザーをアプリ間でシームレスにつなげることができ、より快適なユーザー体験(UX)を提供できます。

  1. 別のデバイスからiPhoneを承認する方法【エラー解決の手順を徹底解説】

    新しいiPhoneにサインインしようとした際、「この電話を承認するには、iCloudにサインインしている別のデバイスにアクセスしてください」というエラーメッセージが表示されたことはありませんか?これはデータの安全性を確保するための機能です。このエラーが表示されても心配いりません。本記事の手順に従えば、別のデバイスから簡単にiPhoneを承認できます。 別のデバイスからiPhoneを承認する簡単な方法 1. iCloudでiOSデバイスを使ってMacを承認する 新しいMacを購入した後や、旧macOSからアップグレードした後は、iCloudでの承認が必要になります。以下の手順で承認を行いましょう

  2. iPhone・iPadでアプリをロックする方法|ガイドアクセスの設定と個別アプリ保護の完全ガイド

    ゲストモードや特定のフォルダ・アプリへのアクセス制限機能は、ユーザーから長年にわたって強く要望されてきましたが、AppleはiOSのアップデートを重ねる中で一貫してこの要望に応えてきませんでした。AppleはiPhoneやiPadを共有デバイスではなく個人用のデバイスと位置づけているため、端末全体にはパスコードをかけられても、個別のアプリやフォルダを直接ロックすることはできない仕組みになっています。 とはいえ、子どもや家族にiPadやiPhoneを使わせたいけれど、他のアプリやコンテンツには触ってほしくない、というケースは少なくありません。そんなときは、特定のアプリだけを使える状態に端末をロ