2015-09-02 13 views
6

Jak uzyskać dostęp do plików cookie i innych danych sesji związanych z przeglądarką z poziomu aplikacji Shiny?Jak uzyskać dostęp do sesji przeglądarki/plików cookie z poziomu aplikacji Shiny App

Z session$clientData, jesteśmy w stanie uzyskać inne dane klienta, jak host, port, param kwerendy ...

Czy jest jakiś inny sposób, aby uzyskać cookies w błyszczące aplikacji?

+0

można dostać to po stronie javascript i użyj 'Shiny.onInputChange', aby przekazać go z powrotem do Shiny –

+0

Czy nie jest to możliwe bez javascript? – sag

+1

Może, ale nie to, że znam –

Odpowiedz

3

Aby zbudować na świetnych komentarzach, możesz użyć pakietu js.cookie.js z funkcją Shiny.OnInputChange(), aby zwrócić pliki cookie.

Przykładem aplikacji jest tutaj: 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 
}) 

}) 
Powiązane problemy