如何使用非默认浏览器?

时间:2016-06-24 05:59:21

标签: r

我有一个R包,可以在浏览器中触发Oauth2流(通过httr)。用户处于奇怪的情况,他们的IT部门需要特定的系统默认浏览器(在这种情况下,它是IE + Windows)。但是用户需要在其他浏览器中执行OAuth。

我知道R_BROWSER环境变量,并希望暂时将其设置为需要的浏览器。 (然后希望在OAuth流程中获得荣誉......)

我在Mac上摆弄这个,我的默认浏览器是Safari。我常见的情况是R_BROWSER就是这个

Sys.getenv("R_BROWSER")
#> [1] "/usr/bin/open"

我知道如何强制使用来自shell的Chrome,或者来自R的system()来电:

system("/usr/bin/open -a '/Applications/Google Chrome.app' 'http://slate.com'")

但是,如何将这些知识转移到R_BROWSER的适当设置?这不起作用:

Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Google Chrome.app'")

当我随后browseURL()时,会使用通常的Safari默认设置。我怀疑答案因操作系统而异。对于Mac OS,似乎希望避免使用open并以某种方式直接指定浏览器。

2 个答案:

答案 0 :(得分:4)

首先,您还应保存axis()选项和browser的先前值,以便您可以恢复会话的先前状态:

R_BROWSER

然后,您可以通过在设置old_R_BROWSER <- Sys.getenv("R_BROWSER") old_browser <- options()$browser 后重新运行命令 @ Hack-R 来实现所需的行为。

R_BROWSER

(您也可以直接设置Sys.setenv("R_BROWSER" = "/usr/bin/open -a '/Applications/Safari.app'") options(browser = as.vector(Sys.getenv("R_BROWSER"))) browseURL("http://www.google.com") # opens in Safari, though my default is Chrome options(browser = "/usr/bin/open -a '/Applications/Safari.app'")。)

最后,恢复系统状态

browseURL

答案 1 :(得分:2)

R查找配置时指定的浏览器。

选项的默认设置(&#34;浏览器&#34;)设置为

options(browser = as.vector(Sys.getenv("R_BROWSER")))

并在配置时找到的浏览器在R_BROWSER变量中设置 在文件etc / Renviron中。所以编辑该文件。

最后,如果这是一个共享系统,您可以拥有以下内容 〜/ .Renviron文件

R_BROWSER=${R_BROWSER-'FireFox'}

看?启动。 (您也可以使用Rprofile文件,但通常也会使用 只有一个.Renviron文件。)

我的基础是this