我在浏览器中通过设置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做到这一点?
它不是很优雅,但您可以使用例如包通过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)