How to access browser session/cookies from within Shiny App

前端 未结 1 2015
花落未央
花落未央 2020-12-09 20:33

How can I access cookies and other browser-related session data from within a Shiny app?

With session$clientData, we are able to get other client details like host,p

相关标签:
1条回答
  • 2020-12-09 21:00

    To build on the great comments, you can use the js.cookie.js package with the Shiny.OnInputChange() function to return cookies.

    An example app is here: https://beta.rstudioconnect.com/iwallace/cookies/

    --ui.r--

    library(shiny)
    library(shinydashboard)
    
    fluidPage(
    tags$head(tags$script(src="js.cookie.js")),
    # a shiny element to display unformatted text
    box(title ="click the gray square to view cookies!",    verbatimTextOutput("results"),actionButton("go","click me")),
    
    # javascript code to send data to shiny server
    tags$script('
              document.getElementById("go").onclick = function() {
              var number = Math.random();
    
              Cookies.set(\'name\', \'value\', { expires: 7 });
              Cookies.set(\'cookie_2\', \'value\', { expires: 7 });
    
              var my_cookie = Cookies.get(); 
    
              Shiny.onInputChange("mydata", my_cookie);
              };
              ')
    

    )

    --server.r--

    library(shiny)
    
    shinyServer(function(input, output,session) {
    output$results = renderPrint({
    input$mydata
    })
    
    })
    
    0 讨论(0)
提交回复
热议问题