r - 如何使用非默认浏览器?

标签 r

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

我知道 R_BROWSER环境变量,想暂时设置到需要的浏览器。 (然后希望这将在 OAuth 流程中得到尊重......)

我在 Mac 上摆弄这个,我的默认浏览器是 Safari。我平时的情况 wrt R_BROWSER这是

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

我知道如何通过 system() 强制使用例如 shell 中的 Chrome 或 R 中的 Chrome。称呼:

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并以某种方式直接指定浏览器。

最佳答案

首先,您还应该保存 browser 的先前值选项和 R_BROWSER以便您可以恢复 session 的先前状态:

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 有效。)

最后,恢复系统状态
Sys.setenv("R_BROWSER" = old_R_BROWSER)
options(browser = old_browser)

关于r - 如何使用非默认浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006500/

相关文章:

r - 当使用 tidyr 分隔符和正则表达式正向前瞻时,有没有办法自动删除分隔符?

r - 标记多个日期范围内的日期

r - 你能用ggplot2调整单个堆积条形图的宽度吗?

r - 如何从日期中获取周数?

r - 在 ggplot2 中使用 SVG 图像作为符号

r - 根据两列中值的组合从数据框中提取行

r - 按两个单独的列分组的移动平均线

r - Shiny 的 R renderText 粘贴新行并加粗

r - 如何更改数组维度的顺序

r - 在 ggradar 图中保留原始值