のようなカスタムURLハンドラ/カスタムプロトコルハンドラについて、オンラインで多くのことを読んできました
特定のプログラムが特定のスキームやプロトコルを扱えることを Info.plist
ファイルでシステムに伝えることができるのはわかります
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Local File</string>
<key>CFBundleURLSchemes</key>
<array>
<string>local</string>
</array>
</dict>
</array>
<key>NSUIElement</key>
<true/>
しかし、mailto:
のように同じURLハンドラを開くことができるアプリケーションが複数ある場合、システムがどのアプリケーションを使用するかをどのように指定するのでしょうか?
More Internet preference pane
のようなユーティリティへの言及がありましたが、これはもう作者のサイトからは入手できないようです。ググってオンラインで見つけましたが、古いOSX用に書かれているようで、ちょっと怪しい感じがします – おそらくTigerでしょう
プロトコルやカスタムプロトコルのURLハンドラを設定する方法についての情報が見つかりません。どこかに編集できるplist
ファイルがあるのではないかと推測しています – あるいは、Mountain Lionと相性の良い新しい優れたユーティリティがあるのではないでしょうか?
78 cwd 2013-02-07
お探しのファイルは~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist
です
LSHandlers
という配列を保持しており、LSHandlerURLScheme
を定義しているDictionaryの子はLSHandlerRole
でそれに応じて修正することができます
このファイルを手動で編集するのではなく、RCDefaultAppを使用すると、素敵な環境設定ペインが表示されます。macOS 10.12以降では動作しないと言われていますが、macOS 10.14で動作確認できました
別の方法としては、SwiftDefaultAppsがあります
例えば、ここにSVNとSSHがあります
… と RCDefaultApp で
66 slhck 2013-02-07
2017年7月のアップデート。RCDefaultAppとlstool
がmacOS 10.12以降で動作しなくなりました。新たな解決策を見つけなければなりません
2018年3月編集 SwiftDefaultAppsを見つけましたが、まだHigh Sierraではないのでテストできません
先ほどの回答に続いて、コマンドラインでこれを行いたい場合は、lstool
コマンドを使用することができます
使い方は簡単です
[~]$lstool --help
Usage:
lstool read [<lsscheme> [<type>]]
lstool [-n] write <lsscheme> <type> <app>
lstool [-n] setoption <lsscheme> <type> login|ignorecreator YES|NO
lstool [-n] register {<app>}
lstool [-n] unregister {<path> | <app>}
lstool apps
-n means do not make changes
<lsscheme> is one of: internet, media, url, extension, uti, mime, ostype
<app> is the path to an application or a name to be looked up
18 Quinn Comendant 2013-09-12
Apple OS X 10.10 (Yosemite) での現在の LaunchServices URL ハンドラの設定を一覧表示します
defaults read com.apple.LaunchServices/com.apple.launchservices.secure
16 VirtualJMills 2015-08-19
XCodeでファイルを開くのはかなり簡単です
https://discussions.apple.com/thread/5815759の回答に記載されているように、コマンドplutil
を使用してxml1またはbinary1形式の間で変換すると、似たような動作をします
plutil -convert xml1 /file-i-wish
nano /file-i-wish & save file
plutil -convert binary1 /file-i-wish
エイリアン」ツールは必要ありません。)
6 Clemens Tolboom 2014-10-13
興味のある人がいれば、カスタムURLプロトコルの登録を簡単にするアプリケーションを実際に書いてみました。LinCastor (http://onflapp.wordpress.com/lincastor/) と呼ばれるものです。ハンドラは AppleScript やシェルスクリプト (Perl、Python、何でもOK) で定義できます
5 On Flapp 2013-10-24
また、dutiを使用することもできます
echo $'com.apple.mail mailto\ncom.googlecode.iterm2 x-man-page'>~/.duti;duti ~/.duti
4 Lri 2013-10-25
El Capitanの下にある古いMore Internetを試してみました
それはファンキーで、それが動作する唯一の方法は、プロトコルを選択するために上下の矢印キーを使用して、変更を行うためにウィンドウにAPPアイコンをドラッグ/ドロップすることを介して動作します
デフォルトをSafariからChromeに切り替えたところ、変更が引っかかったので、今でも動作しています
0 Calgary Guru 2016-07-13
Apple OS X 10.10+ (Yosemite)上のXcodeで現在のLaunchServicesのURLハンドラの設定を一覧表示する別の方法
open -a Xcode ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist
0 oikonomopo 2017-05-12