从服务器向客户端发送数据
在许多情况下,你需要将数据从 R 服务器发送到 JS 客户端。这是一个非常简单的例子:
library(shiny)
runApp(
list(
ui = fluidPage(
tags$script(
"Shiny.addCustomMessageHandler('message', function(params) { alert(params); });"
),
actionButton("btn","Press Me")
),
server = function(input, output, session) {
observeEvent(input$btn,{
randomNumber <- runif(1,0,100)
session$sendCustomMessage("message",list(paste0(randomNumber," is a random number!")))
})
}
)
)
这里的主要工具是 R 中的 session$sendCustomMessage 函数和 javascript 中的 Shiny.addCustomMessageHandler 函数。
session$sendCustomMessage 函数允许你将参数从 R 发送到 javascript 函数,Shiny.addCustomMessageHandler 让你定义接受 R 参数的 javascript 函数。
注意:列表从 R 传递到 javascript 时会转换为 JSON