URL handlers on OS X
Friday, 04. 20. 2012 – Category: sw
Update 2012-04-25 Corrected the plist
key to CFBundleIdentifier
.
I’ve often wondered about how to do this without monkeying in Objective C. It’s doable in (ugh) Applescript with some property list editing. Whimsical XKCD handler such that xkcd://627
behaves like http://xckd.com/627
:
on open location uri
set delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to "//"
set comic to text item 2 of uri
set page to "http://xkcd.com/" & comic
tell application "Safari"
activate
open location page
end tell
set AppleScript's text item delimiters to delimiter
end open location
Save as an Application rather than a Script. Open its info.plist
and add
<key>CFBundleIdentifier</key>
<string>uk.co.zomo.xkcd-handler</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>XKCD helper</string>
<key>CFBundleURLSchemes</key>
<array>
<string>xkcd</string>
</array>
</dict>
</array>
To nudge OS X to notice changed a plist:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f ~/Library/Scripts/xkcd-handler.app
Links:
Recent articles
- Docker, SELinux, Consul, Registrator
(Wednesday, 04. 29. 2015 – No Comments) - ZFS performance on FreeBSD
(Tuesday, 09. 16. 2014 – No Comments) - Controlling Exim SMTP behaviour from Dovecot password data
(Wednesday, 09. 3. 2014 – No Comments) - Heartbleed OpenSSL vulnerability
(Tuesday, 04. 8. 2014 – No Comments)
Archives
- April 2015
- September 2014
- April 2014
- September 2013
- August 2013
- March 2013
- April 2012
- March 2012
- September 2011
- June 2011
- February 2011
- January 2011
- October 2010
- September 2010
- February 2010
- September 2009
- August 2009
- January 2009
- September 2008
- August 2008
- July 2008
- May 2008
- April 2008
- February 2008
- January 2008
- November 2007
- October 2007
- September 2007
- August 2007
- December 2006
- November 2006
- August 2006
- June 2006
- May 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005