macos – OS XでカスタムURLハンドラを設定するには?

mac macos osx-mountain-lion protocol url

のようなカスタム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


タイトルとURLをコピーしました