OSX:设置用户默认浏览器

摘要:
最近,我们遇到了一种情况,需要将用户的默认浏览器统一设置为Google Chrome。此设置由系统LaunchServices根据用户进行管理。仅设计用户配置将相对麻烦。上述措施基本上可以解决几乎所有工作站和用户配置的问题。关键是如何解决这些问题:假设谷歌Chrome,这看起来很简单。因为Chrome支持一个内部命令:opena“Google Chrome”--args--make default browser,这只对其他浏览器无效,所以另一种方法是使用以下python脚本:#/usr/bin/envpython#--------------------------------------------#Setdefaultwebbrowserrapp##orgfrom:https://gist.github.com/miketaylr/5969656##enhencedversion1.1byTonyLiu#---------------------------------------------从LaunchServicesimportLSSetDefaultHandlerForURLScheme到LaunchServicesimortLSSetDefaultRoleHandlerForContentTypeimportsyswebApp=sys。argv[1]#0x0000002=kLSRolesViewer#seehttps://developer.apple.com/library/mac/#documentation/Carbon/Reference/LaunchServicesReference/Reference/reference.html#//apple_ref/c/tdef/LSRolesMaskLSSetDefaultRoleHandlerForContentTypeLSSetDefaultRoleHandlerForContentTypeLSSetDefaultRoleHandlerForContentTypeLSSetDefaultHandlerForURLSchemeLSSetDefaultHandlerForURLScheme例如,如果将Safari设置为默认值,则python/path/to/setDefaultBrowser.pycom.apple。Safari也是如此。

近期我们遇到的情况是,须要统一设置用户的默认浏览器为Google Chrome。而系统默认的是Safari。

这个设置是系统Launch Services基于用户管理的。

意思就是说,即便是改动了系统全局參数,假设用户有特定设置。那么会依从用户配置。

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

上面的措施基本上能够解决差点儿全部的工作站的情况和用户配置情况,关键是怎样解决:

假设是Google Chrome,似乎非常easy,由于Chrome支持一个内部命令:

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

只是要是针对其它浏览器就无效了,须要其它方法

一个是使用以下的python脚本:

#/usr/bin/env python

# ------------------------------------------------------
# Set default web browser app
# 
# org from: https://gist.github.com/miketaylr/5969656
#
# enhenced version 1.1 by Tony Liu
# ------------------------------------------------------

from LaunchServices import LSSetDefaultHandlerForURLScheme
from LaunchServices import LSSetDefaultRoleHandlerForContentType
import sys

webApp=sys.argv[1]

# 0x00000002 = kLSRolesViewer
# see https://developer.apple.com/library/mac/#documentation/Carbon/Reference/LaunchServicesReference/Reference/reference.html#//apple_ref/c/tdef/LSRolesMask

LSSetDefaultRoleHandlerForContentType("public.html", 0x00000002, webApp)
LSSetDefaultRoleHandlerForContentType("public.xhtml", 0x00000002, webApp)
LSSetDefaultRoleHandlerForContentType("public.url", 0x00000002, webApp)
LSSetDefaultHandlerForURLScheme("http", webApp)
LSSetDefaultHandlerForURLScheme("https", webApp)

使用方法比方设置Safari为默认的,那么就是
python /path/to/setDefaultBrowser.py com.apple.Safari
同理。Google Chrome是
python /path/to/setDefaultBrowser.py com.google.chrome

另外一个方式就是使用开源工具duti

下载编译非常easy,之后执行命令:


duti com.google.chrome.canary public.html all
duti com.google.chrome.canary public.xhtml all
duti com.google.chrome.canary public.url all
duti com.google.chrome.canary http
duti com.google.chrome.canary https

另外另一个人做了一个单独的app, 叫defaultbrowser

參考技术文档:Launch Services

免责声明:文章转载自《OSX:设置用户默认浏览器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Flask- celery (芹菜)pandas中关于accessor的骚操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Fiddler的使用(抓包,断点,篡改数据)

一,Fiddler简介   Fiddler是最常用的web调试工具之一,位于客户端和服务器端的HTTP代理。因为它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、篡改请求的数据,甚至可以修改服务器返回的数据,功能非常强大实用。 二,Fiddler下载   官方下载地址:https://ww...

给网站添加X-UA-Compatible标签

给网站添加X-UA-Compatible标签方法一:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />如:<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />IE=edge告诉IE使用最...

sumo快速运行简单仿真实例详细教程

本文旨在让大家快速的了解sumo,并给出运行一个简单的sumo的例子的教程,进而了解基本sumo工程的架构,使大家对该软件产生兴趣并持续学习下去,刚开始学习仿真的确枯燥,项目“跑起来”才是大家学习下去的动力,国内参考文献太少了,sumo官网又是纯英文,出于此产生了本篇教程,在写作过程中引用了几位CDDN博主的文章,还有两篇介绍车联网仿真模型的论文,就不一一...

新能力丨云开发Cloudbase推出登录组件

开发「用户登录模块」是 Web 应用开发者最关心的事项之一,继云开发 CloudBase 原生支持短信验证码登录后,目前云开发已支持短信验证码、邮箱等多种登录鉴权方式,供不同的用户场景使用。 为了进一步优化开发者的使用体验,云开发 CloudBase 全新推出了自带云开发登录能力的 UI 组件——@cloudbase/ui-react,封装了邮箱登录、短信...

基于React Native的58 APP开发实践

React Native在iOS界早就炒的火热了,随着2015年底Android端推出后,一套代码能运行于双平台上,真正拥有了Hybrid框架的所有优势。再加上Native的优秀性能,让越来越多的公司在实际项目中一探究竟。58同城APP发布模块年代久远,一直计划进行重构以适应日益苛刻的用户体验,这个需求与我们在React Native上一探究竟的意愿一碰撞...

Android 上的 10 款 Web 开发工具推荐

作为一个狂热的 Android 用户,我一直在寻找适合Web开发人员使用的一些应用程序。经过搜索发现能够找到Web开发几乎每个方面的工具,涉及从Web服务器本身到FTP客户端再到一个源代码查看器,以及网站分析工具等等。以下推荐10款非常实用的Android端的Web开发工具。1.AndFTPAndFTP 是 Android 手机上的支持 FTP、SFTP、...