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