如何使用 shinyjs 和 shinyfullscreen 全屏启动应用程序

How to start app in fullscreen with shinyjs and shinyfullscreen

提问人:António 提问时间:11/17/2023 最后编辑:António 更新时间:11/17/2023 访问量:18

问:

我正在尝试找出一种使用 shinyjs::click 来模拟点击事件的方法,这样就可以使用 shinyfullscreen::fullscreen_all 使应用程序全屏显示。

以下代码演示了 shinyfullscreen::fullscreen_all 的用法。它使用模态窗口来模拟登录页面,并有一个关闭按钮,除了关闭模态之外,该按钮使应用程序全屏显示。我还包括 shinyjs::click 来模拟初始点击,这应该使应用程序在启动时全屏显示。但事实并非如此。

library(shiny)
library(bs4Dash)
library(shinyjs)
library(shinyfullscreen)

ui <- dashboardPage(
  dashboardHeader(title = "fullscreen App"),
  dashboardSidebar(),
  dashboardBody(
    useShinyjs(),
    plotOutput("plot1")
  )
)

server <- function(input, output) {
  histdata <- rnorm(1)
  observeEvent(once = TRUE,ignoreNULL = FALSE, ignoreInit = FALSE, eventExpr = histdata, {
    showModal(modalDialog(
      title = "Landing Page", 
      p('some content'),
      actionButton("qwert", "Close"),
      shinyjs::click("qwert"),
      fullscreen_all(click_id = "qwert"),
      footer = NULL
    ))
  })

  observeEvent(input$qwert, {removeModal()})
  
  output$plot1 <- renderPlot({
    plot(rnorm(10))
  })
}
shinyApp(ui, server)

这个问题有什么解决方案吗? 谢谢。

我还从这里改编了代码,我认为这更好地说明了问题。

if (interactive()) {
  library(shiny)
  library(shinyjs)
  library(shinyfullscreen)
  
  shinyApp(
    ui = fluidPage(
      useShinyjs(),  # Set up shinyjs
      "Count:", textOutput("number", inline = TRUE), br(),
      actionButton("btn", "Click me"), br(),
      fullscreen_all(click_id = "btn"),
      "The button will be pressed automatically every 3 seconds"
    ),
    server = function(input, output) {
      output$number <- renderText({
        input$btn
      })
      observe({
        click("btn")
        print("111")
        invalidateLater(3000)
      })
    }
  )
}
亮的闪

评论


答: 暂无答案