У меня есть приложение R-Shiny с сюжетом, реализующим интерактивные действия: щелчок, наведение (при наведении указатель мыши проходит над сюжетом, что может быть обнаружено с помощью блестящего). Чтобы дать представление, я размещаю ниже упрощенное блестящее приложение с проблематичной для меня функциональностью, интерактивным сюжетом для рисования. (это взято из моего старого ответа здесь)
На самом деле он работает нормально, но мне нужно, чтобы люди использовали его со своих смартфонов. Проблема: движения пальца, которые мы делаем на смартфоне, интерпретируются телефоном как масштабирование на странице или прокрутка на странице, а не как выделение или перемещение мыши по сюжет (парение).
Есть ли модификация кода (java? CSS?), Которую я могу реализовать в приложении, чтобы превратить события касания в события мыши, или параметр / жест на смартфоне, чтобы включить движение, подобное мышке?
Большое спасибо; код:
library(shiny)
ui <- fluidPage(
h4("Click on plot to start drawing, click again to pause"),
sliderInput("mywidth", "width of the pencil", min=1, max=30, step=1, value=10),
actionButton("reset", "reset"),
plotOutput("plot", width = "500px", height = "500px",
hover=hoverOpts(id = "hover", delay = 100, delayType = "throttle", clip = TRUE, nullOutside = TRUE),
click="click"))
server <- function(input, output, session) {
vals = reactiveValues(x=NULL, y=NULL)
draw = reactiveVal(FALSE)
observeEvent(input$click, handlerExpr = {
temp <- draw(); draw(!temp)
if(!draw()) {
vals$x <- c(vals$x, NA)
vals$y <- c(vals$y, NA)
}})
observeEvent(input$reset, handlerExpr = {
vals$x <- NULL; vals$y <- NULL
})
observeEvent(input$hover, {
if (draw()) {
vals$x <- c(vals$x, input$hover$x)
vals$y <- c(vals$y, input$hover$y)
}})
output$plot= renderPlot({
plot(x=vals$x, y=vals$y, xlim=c(0, 28), ylim=c(0, 28), ylab="y", xlab="x", type="l", lwd=input$mywidth)
})}
shinyApp(ui, server)