我们可以与
RequiredLibraries <- c("shiny", "shinyjs")
RequiredLibraries2Install <- RequiredLibraries[!(RequiredLibraries %in% installed.packages()[, "Package"])]
if(length(RequiredLibraries2Install)) install.packages(RequiredLibraries2Install, dependencies = TRUE)
lapply(RequiredLibraries, library, character.only = TRUE)
is_online <- function(site = "http://www.google.com/")
{
tryCatch(
{
readLines(site,n=1)
TRUE
},
warning = function(w) invokeRestart("muffleWarning"),
error = function(e) FALSE)
}
ui <- fluidPage(
useShinyjs(),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Reprex",
checkboxInput(inputId = "Download_Some_Data", label = "Download some data only if there is an Internet connection", value = FALSE, width = '100%')
)
),
width = 12
)
)
server <- function(input, output, session)
{
observeEvent(input[["Download_Some_Data"]],
{
toggleState(id = "Download_Some_Data", condition = is_online())
})
# observe(is_online(),
# {
# toggleState(id = "Download_Some_Data", condition = is_online())
# })
}
runApp(list(ui = ui, server = server), launch.browser = TRUE)
一起使用httr2::is_online()
invalidateLater