Weblistbox on iOS (iPad)

Hello,

I made a webapp with weblistbox. When I try to access it with an iPad the double tap on a row dosen’t works but double click works if I use a computer with a mouse.

Do you know this issue ?

Regards

Arnaud

iOS doesn’t have a double click the way desktop does. There is a gesture recognizer for it (double tap to zoom on photos) but I can’t say for sure whether it was implemented by Xojo for web/ios usage.

Please remember that iOS is an entirely different paradigm than desktop computing. A lot of things are wildly different, and you need to handle as such. Using the Web target unfortunately doesn’t magically fix this :frowning:

The equivalent to double click under iOS is long press.
I don’t think it is implemented in Xojo Web.

The documentation of the double click event say “The user has double-clicked (or double-tapped) within the control.” src: https://documentation.xojo.com/index.php/WebControl.DoubleClick

I think I haven’t other solution I add a button to run this aciton.

It’s a shame the weblistbox is basic than desktop listbox.

Regards

Arnaud

iOS browsing implementation is kind of strange. For instance, they made it so it is not possible to set focus in code to a textfield/TextArea unless the user taps into it. That limitation is intrinsic to iOS, not to Xojo web, and affects HTML as well as JavaScript.

You can implement long press yourself :

  • In MouseDown start a single timer period 500
  • The Action event of that timer will be the Long Press event
  • In MouseUp stop the longpress timer

If the user just taps, the timer is stopped right away. If the user holds his finger, the timer fires. I would tend to use a server side timer (the same as is used in Desktop) rather than a WebTimer to avoid possible lag in the iOS web browser.

It is relatively easy to create a subclass implementing long press, if you need several webListBoxes with that event.

With the same kind of technique, you can implement double tap as well. Although it is a bit more intricate, since you would have to hold cellclick until you are certain it is not a double click. Likewise for MouseUp.

I bet the Windows touch implementation supports double tap flawlessly, because Windows 10 touch truly emulates the mouse.

Hello Michel,

Thanks for your idea, it work very well. I used the CellClick event because it’s select the row when I click.

Just one thing, what do you mean about server timer ? I know the timer control but it’s a webTimer.

Regards

Arnaud

To use the same timer as in Desktop, which executes on the server instead of the browser side JavaScript WebTimer, drag a Generic Object to your web page, and make it’s super “Timer”. The icon will change to the timer one. Use as you would on Desktop.

Hello Michel,

Thanks for you help.

I made a Timer with the generic object, it work fine, but in the action event, I need to execute a method in a WebPage. With WebTimer I can access to the methode of WebPage1 but I can’t with a Timer.

Do you have an idea ?

Regards

Arnaud

I advise a server side timer for the long press event, in case the particularly slow iOS browser gets in the way.

At any rate, even WebTimer is not executing the code in the browser. It sends back the event for handling to the server.

Now you got a choice.