Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
492 views
in Technique[技术] by (71.8m points)

r - How to access browser session/cookies from within Shiny App

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,port,query param...

Is there any other way to get cookies in shiny app?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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
})

})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...