itok's Lab

昔の開発ネタを記録として残してます

デフォルトアプリの候補として認識してもらう

デフォルトブラウザとかデフォルトメーラーとか、そういうデフォルトアプリの候補として認識してもらう方法。こういうのはその対応する URL の scheme 部分が関係しているわけですが、それぞれのアプリケーションで「私はこの scheme を受け取れますよ」っていう宣言をすればいいわけです。で、どこで宣言するかっていうと Info.plist ですね。

Info.plist に CFBundleURLTypes という項目を追加します。例えば、こんな感じで。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>Web browser</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>http</string>
            <string>https</string>
        </array>
    </dict>
</array>

CFBundleURLSchemes 以下に対応したい scheme 文字列の配列をおいたらOK。普通は scheme の種別で分割するようなので、例えば ftp にも対応したい場合は新たに辞書を作って CFBundleURLTypes の配列に追加しましょう。

注:これは、あくまでも「候補として認識してもらう」ための必要条件ですので、その scheme を受け取るデフォルトアプリになるためには他から設定(選択)してもらう必要があります。