Javascript 在shinny.onInputChange上下载文件

Javascript 在shinny.onInputChange上下载文件,javascript,r,download,shiny,Javascript,R,Download,Shiny,我正在使用shinny.onInputChange实现一个下载链接,它将从客户端向服务器发送消息。服务器将使用该消息生成一个新文件,然后提供给用户下载downloadHandler可以创建一个按钮从服务器下载文件,但不能从客户端接收消息 observeEvent可以捕获闪亮的.onInputChange 我的问题是如何在observeEvent中实现下载功能 下面是有关shining.onInputChange的一些示例代码。谢谢你的建议 library(shiny) ui <- shi

我正在使用
shinny.onInputChange
实现一个下载链接,它将从客户端向服务器发送消息。服务器将使用该消息生成一个新文件,然后提供给用户下载
downloadHandler
可以创建一个按钮从服务器下载文件,但不能从客户端接收消息

observeEvent
可以捕获闪亮的.onInputChange

我的问题是如何在
observeEvent
中实现下载功能

下面是有关
shining.onInputChange
的一些示例代码。谢谢你的建议

library(shiny)

ui <- shinyUI(
    fluidPage(
        HTML('<a href="#" onclick=\'Shiny.onInputChange("i_download", [1,Math.random()]);\'>Download</a>')
    )
)

server <- function(input, output, session) {
   observeEvent(input$i_download, {
       rep(input$i_download[1])
       # codes to generate a new file and download it
   })
}


shinyApp(ui = ui, server = server)
库(闪亮)

ui我想您可以使用
downloadHandler
接收消息。这是否符合您的要求:

library(shiny)

ui <- fluidPage(
  downloadLink('down', onclick='Shiny.onInputChange("i_download", [1,Math.random()]);')
  # for shiny 0.14.2 or lower use this instead:
  # tagAppendAttributes(downloadLink('down'),  onclick='Shiny.onInputChange("i_download", [1,Math.random()]);')
)

server <- function(input, output, session) {

  output$down <- downloadHandler(

    filename = 'down.txt',

    content = function(file) {

      # use the message (input$i_download) to generate a new file

      writeLines(as.character(input$i_download), file)

    }
  )
}

shinyApp(ui = ui, server = server)
库(闪亮)

ui和,问题是什么?像这样,它不能被复制,因为它导致:
未使用的参数(onclick=“shinny.onInputChange(\'i\u download\,[1,Math.random());”
@BigDataScientist我使用的是shinny 1.0.0。它在
downloadLink()
downloadButton
中添加了一个
..
参数。哦,我在软件包中没有更新。我知道onclick参数只是不知道下载链接。非常感谢@Yang!