Open mebibou opened 11 years ago
Just pushed a change with this in it. I did the string casting in the javascript so it doesn't matter what you send to it. Give it a shot.
Thank you for this great code! I've been looking for long time for something like this.
I did test your code on a Galaxy S3 phone and on a Nexus 7 tablet and in of both devices the selection didn't work. Nevertheless on the emulator the selection worked out.
Then what I figured out is that both devices had locale French and that what was causing trouble was this kind of strings:
String.format("javascript:android.selection.startTouch(%f, %f);", xPoint, yPoint);
If you replace all occurrences of String.format with the alternative using the locale US like this:
String.format(Locale.US, "javascript:android.selection.startTouch(%f, %f);", xPoint, yPoint);
That solved the problem.
If used on a device that is not in English metrics,
float
values are represented by commas and not dots, i.e.302.2
will appear as302,2
in French for example.This causes all call to javascript methods with
float
values to fail, for example:A way to make this work in all cases would be to surround
float
values by single quotes:and parse them to
float
in the javascript methods (parseFloat(value)
)