将 JavaScript 与 GWT 结合使用来获取用户位置,但变量不会被传递

Using JavaScript with GWT to get user location, but variable does not get passed

本文关键字:变量 位置 用户 GWT JavaScript 结合 获取      更新时间:2023-09-26

我有一个简单的代码,它在java代码中使用javascript(使用google的GWT),所以我想做的只是获取用户的纬度并将该数字传递回Java代码,以便我可以对其进行一些计算。

但是,我无法将变量 x= position.coords.latitude 返回给我的 Java 代码,因为即使当我调用 alert(x) 时,它在我的屏幕上显示正确的纬度,当我尝试返回它时,x 仍然是空的,什么也没发生。

public static native Number findlatitude() /*-{
    var x;
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {
            x = position.coords.latitude;
            alert(x);
        });
    }
    return x;
}-*/;

不是从函数返回 x 的值,而是可以分配

position.coords.latitude

到可由调用函数访问的变量。这样,分配给该变量的值将保持不变。像这样的事情:编辑

var b;
function callingFunction(){
    findLocation();
    //your stuff
}
function floc(position){
    b = position.coords.longitude;
}
function findLocation(){
    navigator.geolocation.getCurrentPosition(floc);
}
callingFunction();