OS X 小技巧 | 之轻松设置系统默认浏览器

OS X 小技巧 | 之轻松设置系统默认浏览器

文章前言

在OS X下浏览器版本并没有windows下那么茂盛,自带的Safari我感觉就挺好的,但是在特定的情况下需要用的特定的功能,比如旅(fan)游(qiang)什么的就比较困难,这时候我们就借助一些浏览器插件来帮我们完成了。

一般系统默认的浏览器当然是人家自己的Safari了,如何实现不管通过什么调用浏览器都打开我们设置的默认浏览器呢?这个设置是系统Launch Services基于用户管理的。意思就是说,即便是修改了系统全局参数,如果用户有特定设置,那么会依从用户配置。

只要一设计用户配置,那么就会相对麻烦点。要想改变,会涉及多种用户情况,比如:网络用户文件夹的情况,用户的配置信息都在服务器上,所以配置需要在服务器上修改;如果用户文件夹保存在本地,那么可以有两种对策,1是:系统默认用户文件夹模板需要改变,而且需要遍历并改变已登录用户的所有;2是:部署一个用户级别的launchagent服务,每当一个用户登陆后,都会运行一个程序来完成设置;那么对于移动用户,特别是可能不知道什么时候才能连接到公司网络的情况,就需要一个终端部署管理系统,比如JAMF的或者免费得Munki等等。

解决方法

上面的措施基本上可以解决几乎所有的工作站的情况和用户配置情况,关键是如何解决!

如果是Google Chrome,似乎很简单,因为Chrome支持一个内部命令:

  1. open -a "Google Chrome" --args --make-default-browser

不过要是针对其他浏览器就无效了,需要其他方法,下面是一个python脚本:

  1. #/usr/bin/env python
  2. from LaunchServices import LSSetDefaultHandlerForURLScheme
  3. from LaunchServices import LSSetDefaultRoleHandlerForContentType
  4. import sys
  5. webApp=sys.argv[1]
  6. # 0x00000002 = kLSRolesViewer
  7. # see https://developer.apple.com/library/mac/#documentation/Carbon/Reference/LaunchServicesReference/Reference/reference.html#//apple_ref/c/tdef/LSRolesMask
  8. LSSetDefaultRoleHandlerForContentType("public.html", 0x00000002, webApp)
  9. LSSetDefaultRoleHandlerForContentType("public.xhtml", 0x00000002, webApp)
  10. LSSetDefaultRoleHandlerForContentType("public.url", 0x00000002, webApp)
  11. LSSetDefaultHandlerForURLScheme("http", webApp)
  12. LSSetDefaultHandlerForURLScheme("https", webApp)

如何使用呢?用法比如设置Safari为默认的,那么就是:

  1. python /path/to/setDefaultBrowser.py com.apple.Safari

如果想设置Google Chrome浏览器是:

  1. python /path/to/setDefaultBrowser.py com.google.chrome

好了!以后会着重发表一些使用中的小技巧!这篇应该算是笔记吧?

如果你也想发一篇使用技巧的文章,那赶紧来给我们投稿吧!点此给我投稿

  • 黑苹果乐园微信公众号
  • 黑苹果乐园的微信公众号,推送最新文章。谢谢关注!
  • weinxin
  • 黑苹果乐园微信服务号
  • 这是黑苹果乐园的微信公众服务号,也是黑苹果乐园的微信客服。
  • weinxin

发表评论

您必须登录才能发表评论!