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

try*_*bik 5 r shiny

我在浏览器中通过设置options(browser=path/to/browser/exe和使用在Windows上运行独立的R Shiny应用程序shiny::runApp("path/to/app", launch.browser=TRUE).要支持的浏览器是MSIE(默认),但是,如果可用,它也可以是Chrome或Firefox.我的目标是运行应用程序,就像使用--app=独立Chrome应用程序的命令行选项一样,即在新的浏览器窗口中删除了菜单栏和工具栏,但保留了标题栏(因此不在"kiosk"模式下),如果可能的话,没有浏览器的任何其他内容(如先前打开的标签或主页).最好的方法是什么?

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

window.open("http://127.0.0.1:5555/", "MyApp", "menubar=no,toolbar=no,location=no");
Run Code Online (Sandbox Code Playgroud)

这将完成工作(+/-不一致的支持location=no,即禁用地址栏,我可以忍受).现在,如何使用R Shiny做到这一点?

AEF*_*AEF 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)

        })
Run Code Online (Sandbox Code Playgroud)