OSX ブラウザーでカスタム URL から起動されるアプリを作成しました。これは、標準の CFBundleURLName エントリをアプリの plist に追加することで問題なく機能しました。
私のアプリケーションは、カスタム URL のいくつかのパラメーターを解析して読み取り、それらに反応することで機能します。
たとえば、次のカスタム URL を使用します。
foobar://param1/param2/param3
ブラウザで上記の URL をクリックすると、OSX がアプリを起動し、実際のカスタム URL 自体を最初の引数としてアプリに渡します。したがって、アプリでは、最初の引数を読み取り、アプリを開いた URL を取得し、必要なパラメーターを解析することができます。
これは OSX 10.5-10.8 では問題なく動作しますが、10.9 Mavericks では動作が少し異なるようです。つまり、アプリケーションがまだ実行されていない場合でも、アプリを起動しますが、最初の引数としてカスタム URL を渡しません。そのため、アプリは、直接ではなく、ユーザーによって手動で起動されたと見なします (ランチパッドから選択するなど)。ブラウザ。
奇妙なことに、アプリケーションが既に開いている場合、カスタム URL をクリックすると、最初の引数として URL 文字列がアプリに送信され、アプリ内の機能が期待どおりに実行されます。
アプリの新旧バージョンを使用して 10.6->10.9 でこれをテストしたところ、すべて同じ動作を示しました。10.9 Mavericks より前のバージョンでの最初の起動ではすべて正常に動作しますが、10.9 では、最初の引数として渡された URL を取得せず、実行中の 2 回目のクリックで動作します。
誰かがこれに光を当てることができれば、私はとても感謝しています.