library(shiny)
runApp( list(ui = bootstrapPage(
verbatimTextOutput("results"),
verbatimTextOutput("allInputs"),
tags$script('
$(document).on("keypress", function (e) {
Shiny.onInputChange("mydata", e.which);
});
')
)
, server = function(input, output, session) {
output$results = renderPrint({
input$mydata
})
keysPressed <- reactiveVal()
observeEvent(input$mydata, {
keysPressed(c(keysPressed(), input$mydata))
})
output$allInputs = renderPrint({
keysPressed()
})
}
))
ismirsehregal, который помог мне с кодом, который я нашел
Есть ли в R блестящий способ объединить все значения, полученные входом
Мой окончательный код объединяет все подсказки:
UI.R (внутри тела)
tags$script('
pressedKeyCount = 0;
$(document).on("keydown", function (e) {
Shiny.onInputChange("pressedKey", pressedKeyCount++);
Shiny.onInputChange("pressedKeyId", e.which);
});'
),
SERVER.R (где-то)
keysPressed <- reactiveVal()
observeEvent(input$pressedKey, {
keysPressed(c(keysPressed(), input$pressedKeyId))
})
output$secret <- renderUI({
secretCode = keysPressed()
if(length(secretCode)>=10)
secretCode = secretCode[(length(secretCode)-9):length(secretCode)]
trueCode = c(38,38,40,40,37,39,37,39,66,65)
if(isTRUE(all.equal(secretCode,trueCode))){
HTML('<center><img src="4BA140A6A75546D791B01BC0BA9E00A2.png"></center>')
}
})
c (38,38,40,40,37,39,37,39,66,65) соответствует известным последовательным клавишам ввода кода конами