在闪亮的应用程序中重定向

时间:2017-11-07 12:21:28

标签: r redirect shiny httr

我正在尝试将我的Shiny应用程序重定向到另一个页面。我正在使用httr发送GET个请求并查看用户是否已登录。如果不是,我想将其重定向到另一个链接。

我可以仅使用R / Shiny来做,还是需要一些额外的库?

示例:

library(httr)
library(shiny)
shinyServer(function(input, output) {
rv <- reactiveValues()
rv$mytoken = session$request$token

observeEvent(input$button1, {
  rv$a <- GET("my.url:3405/authtoken", 
              add_headers(
                .headers = c("token" = rv$mytoken)
              ))
  if (rv$a$status_code == 200) {
  } else {
    # redirect magic
  }
})
}

shinyUI(fluidPage(
  actionButton(button1, "btn")
))

1 个答案:

答案 0 :(得分:7)

如果不是true

,这将导航到谷歌
library(shiny)

jscode <- "Shiny.addCustomMessageHandler('mymessage', function(message) {window.location = 'http://www.google.com';});"

ui <- fluidPage(
  tags$head(tags$script(jscode)),     
  checkboxInput("Redirect","Redirect",value = T)
)

server <- function(input, output, session) {

  observeEvent(input$Redirect,{
    if(!input$Redirect){
      session$sendCustomMessage("mymessage", "mymessage")
    }
  })
}

shinyApp(ui,server)