從伺服器向客戶端傳送資料
在許多情況下,你需要將資料從 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