R Shiny:在调用runApp时运行独立的浏览器窗口

时间:2017-09-12 14:06:38

标签: r shiny

我通过设置shiny::runApp("path/to/app", launch.browser=TRUE))并使用--app=在浏览器中在Windows上运行独立的R Shiny应用。要支持的浏览器是MSIE(默认),但是,如果可用,它也可以是Chrome或Firefox。我的目标是运行应用程序,就好像使用window.open("http://127.0.0.1:5555/", "MyApp", "menubar=no,toolbar=no,location=no"); 命令行选项用于独立的Chrome应用程序,即在新的浏览器窗口中,该窗口被剥离了菜单栏和工具栏,但保留了标题栏(所以不在" kiosk"模式),如果可能的话,没有浏览器的任何其他内容(如先前打开的标签或主页)。最好的方法是什么?

例如,使用JavaScript,可以调用:

location=no

可以完成这项任务(+/-对{{1}}的不一致支持,即禁用我可以使用的地址栏)。现在,如何使用R Shiny做到这一点?

1 个答案:

答案 0 :(得分:6)

它不是很优雅,但您可以通过COM接口使用例如启动Internet Explorer。包RDCOMClient

正如文档所述,launch.browser参数也可以是一个给定应用程序URL的函数,因此我们可以在那里创建对象:

library(RDCOMClient)

runApp("path/to/app",
       launch.browser = function(shinyurl) {

         ieapp <- COMCreate("InternetExplorer.Application")
         ieapp[["MenuBar"]] = FALSE
         ieapp[["StatusBar"]] = FALSE
         ieapp[["ToolBar"]] = FALSE
         ieapp[["Visible"]] = TRUE
         ieapp$Navigate(shinyurl)

        })