Shiny Chrome浏览器不会显示页面,除非已在浏览器中打开
当我的桌面(linux)上的chrome浏览器已经打开时,我就可以启动闪亮的应用程序了。然而,当我关闭浏览器,启动闪亮的应用程序时,它只会在下方的状态栏中显示一个空白页面和“等待127.0.0.1…”。换句话说,它启动chrome,但不显示闪亮的应用程序内容。这是我的密码:Shiny Chrome浏览器不会显示页面,除非已在浏览器中打开,shiny,shiny-server,Shiny,Shiny Server,当我的桌面(linux)上的chrome浏览器已经打开时,我就可以启动闪亮的应用程序了。然而,当我关闭浏览器,启动闪亮的应用程序时,它只会在下方的状态栏中显示一个空白页面和“等待127.0.0.1…”。换句话说,它启动chrome,但不显示闪亮的应用程序内容。这是我的密码: library(shiny) library(shinyBS) launch.browser = function(appUrl, browser.path='/usr/bin/chromium-browser') {
library(shiny)
library(shinyBS)
launch.browser = function(appUrl, browser.path='/usr/bin/chromium-browser') {
system(sprintf('"%s" --disable-gpu --app="data:text/html,<html>
<head>
<title>Configuration</title>
</head>
<body>
<script>window.resizeTo(800,500);window.location=\'%s\';</script>
</body></html>"', browser.path, appUrl))
}
shinyApp(
ui = fluidPage(
fluidRow(
br(),
wellPanel(
fluidRow(
h4('User Information')
),
fluidRow(
column(4,
textInput('Name', 'Full Name', value = "")
),
column(4,
numericInput('accNum', 'Account Number', value = "")
),
column(4,
textInput('token', 'Account Token', value = "")
)
)
)
),
fluidRow(
column(12,
actionButton('save', 'Save')
)
),
bsTooltip(id = "accNum", title = "Enter Lending Club account number",
placement = "bottom", trigger = "hover")
# tags$head(tags$style(type="text/css", "#accNum {width: 100px}"))
),
server = function(input, output, session) {
session$onSessionEnded(function() {
stopApp()
})
observe({
if (input$save == 0)
return()
isolate({
j<<-input$accNum
})
})
},
options = list(launch.browser=launch.browser)
)
库(闪亮)
图书馆(shinyBS)
launch.browser=函数(appUrl,browser.path='/usr/bin/chromium browser'){
系统(sprintf('%s)--禁用gpu--app=“data:text/html,
配置
window.resizeTo(800500);window.location=\'%s\';
“,browser.path,appUrl))
}
shinyApp(
ui=fluidPage(
fluidRow(
br(),
井面板(
fluidRow(
h4(“用户信息”)
),
fluidRow(
第(4)栏,
textInput('Name','Full Name',value=“”)
),
第(4)栏,
数值输入('accNum','Account Number',value=“”)
),
第(4)栏,
textInput('token','Account token',value=“”)
)
)
)
),
fluidRow(
第(12)栏,
actionButton('保存','保存')
)
),
b工具提示(id=“accNum”,title=“输入借贷俱乐部账号”,
placement=“bottom”,trigger=“hover”)
#标签$head(标签$style(type=“text/css”,“#accNum{width:100px}”))
),
服务器=功能(输入、输出、会话){
会话$onSessionEnded(函数(){
stopApp()
})
观察({
如果(输入$save==0)
返回()
隔离({
j有光泽的github人回答:
“这是由于您的shell脚本存在问题
您需要添加&才能在后台运行浏览器。否则,在R启动浏览器后,浏览器在浏览器进程结束之前不会将控制权返回到R
当chromium已经打开时不会出现问题的原因是,如果浏览器已经打开,chromium对命令的响应不同——它总是立即返回,即使命令没有&。”
更新
以下是我使用的确切脚本:
launch.browser = function(appUrl, browser.path=path) {
system(sprintf('"%s" --disable-gpu --app="data:text/html,<html>
<head>
<title>System Configuration</title>
</head>
<body>
<script>window.resizeTo(830,675);window.location=\'%s\';</script>
</body></html>" &', browser.path, appUrl))
}
launch.browser=function(appUrl,browser.path=path){
系统(sprintf('%s)--禁用gpu--app=“data:text/html,
系统配置
window.resizeTo(830675);window.location=\'%s\';
“&',browser.path,appUrl))
}
对我来说,约翰建议的答案不起作用。不知道为什么……可能是2014年12月以来Chrome的一些设置发生了变化
在我的例子中,使用shell(…,wait=FLASE)
而不是system(…)
launch.browser=function(appUrl,browser.path=path){
系统(sprintf('%s)--禁用gpu--app=“data:text/html,
系统配置
window.resizeTo(830675);window.location=\'%s\';
“&',browser.path,appUrl),wait=FALSE)
}
如果您从code启动chrome,然后在该窗口内启动应用程序,该怎么办?我假设127.0.0.1是您的本地计算机或您的shiny应用程序正在运行的计算机?谢谢您的建议,但我更希望不必进行任何修改。shiny应该能够根据我阅读的文档启动浏览器。但是,有有些东西导致它无法启动,即使相同的启动命令在Shinycan之外工作正常。你能给我看一下更正后的shell脚本吗?我现在也有同样的问题。知道一些人停止建议使用Chrome可能有用,例如,请参阅。
launch.browser = function(appUrl, browser.path=path) {
system(sprintf('"%s" --disable-gpu --app="data:text/html,<html>
<head>
<title>System Configuration</title>
</head>
<body>
<script>window.resizeTo(830,675);window.location=\'%s\';</script>
</body></html>" &', browser.path, appUrl))
}
launch.browser = function(appUrl, browser.path=path) {
system(sprintf('"%s" --disable-gpu --app="data:text/html,<html>
<head>
<title>System Configuration</title>
</head>
<body>
<script>window.resizeTo(830,675);window.location=\'%s\';</script>
</body></html>" &', browser.path, appUrl), wait=FALSE)
}