itok's Lab

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

デフォルトアプリとして設定する

デフォルトブラウザとかデフォルトメーラーとかのデフォルトアプリとして設定する方法。前述の「デフォルトアプリとして認識してもらう方法」も参照してください(この設定も必要なので)。

これは実のところ関数を呼び出すだけです。が、Info.plist の方にちゃんと CFBundleURLTypes の記述がなければなりません。

OSStatus LSSetDefaultHandlerForURLScheme(
    CFStringRef inURLScheme,        // scheme 文字列
    CFStringRef inHandlerBundleID); // bundle identifier

例えば、デフォルトブラウザならこう。

OSStatus ret = LSSetDefaultHandlerForURLScheme(
    CFSTR("http"),
    CFSTR("jp.itok.lab.browser"));

この仕組みはなにも既存の scheme に限らないので、全く独自の scheme を用意して専用のアプリを動かすこともできるんですよね。