title: used on a smartphone, shiny interactive plot doesn't understand finger movements
body: <p>I have a R-Shiny application with a plot that implements interactive actions: click, hovering (hovering is passing the mouse over the plot, which can be detected by shiny). To give an idea, I post below a simplified shiny-app with the functionality that is problematic to me, the interactive drawing plot. (it's taken from an old answer of mine <a href="https://stackoverflow.com/a/48442522/3871924">here</a>)</p>
  <p>It's actually working fine, however I need people to use it from their <strong>smartphones</strong>. The problem: the finger movements we do in the smartphone are interpreted by the phone as <em>zooming</em> on the page or <em>scrolling</em> on the page, and not as mouse selection or mouse movement over the the plot (hovering).</p>
  <p>Is there a modification of the code (java? CSS?) that I can implement on the app to turn touch events into mouse events, or an option/gesture on the smartphone to enable a mouse-like movement?</p>
  <p>Thanks a lot; the code:</p>
  <pre><code>library(shiny)
  ui &lt;- fluidPage(
    h4(&quot;Click on plot to start drawing, click again to pause&quot;),
    sliderInput(&quot;mywidth&quot;, &quot;width of the pencil&quot;, min=1, max=30, step=1, value=10),
    actionButton(&quot;reset&quot;, &quot;reset&quot;),
    plotOutput(&quot;plot&quot;, width = &quot;500px&quot;, height = &quot;500px&quot;,
               hover=hoverOpts(id = &quot;hover&quot;, delay = 100, delayType = &quot;throttle&quot;, clip = TRUE, nullOutside = TRUE),
               click=&quot;click&quot;))
  server &lt;- function(input, output, session) {
    vals = reactiveValues(x=NULL, y=NULL)
    draw = reactiveVal(FALSE)
    observeEvent(input$click, handlerExpr = {
      temp &lt;- draw(); draw(!temp)
      if(!draw()) {
        vals$x &lt;- c(vals$x, NA)
        vals$y &lt;- c(vals$y, NA)
      }})
    observeEvent(input$reset, handlerExpr = {
      vals$x &lt;- NULL; vals$y &lt;- NULL
    })
    observeEvent(input$hover, {
      if (draw()) {
        vals$x &lt;- c(vals$x, input$hover$x)
        vals$y &lt;- 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=&quot;y&quot;, xlab=&quot;x&quot;, type=&quot;l&quot;, lwd=input$mywidth)
    })}
  shinyApp(ui, server)
  </code></pre>