如何从Shiny App中访问浏览器会话/ cookie

时间:2015-09-02 12:51:19

标签: r cookies shiny

如何从Shiny应用程序中访问cookie和其他与浏览器相关的会话数据?

使用session$clientData,我们可以获得其他客户端详细信息,如主机,端口,查询参数......

有没有其他方法可以在闪亮的应用中获取Cookie?

1 个答案:

答案 0 :(得分:4)

为了建立出色的评论,你可以使用带有Shiny.OnInputChange()函数的js.cookie.js包来返回cookie。

示例应用程序位于: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
})

})