-1

我如何解析来自谷歌方向服务的响应?我从我的 iOS WebView 调用 javascript 代码,我想从 java 脚本返回一些值到 iOS。当我使用警报功能显示时,我可以看到响应,但它没有返回值。我认为这可能是函数是回调函数。所以我该怎么做 ?请告诉我解决方案

这是我的代码:

    var value = function() {

var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
   // var response=new google.maps.DirectionsResult;

var map = new google.maps.Map(document.getElementById('map'), {
                              zoom:7,
                              mapTypeId: google.maps.MapTypeId.ROADMAP
                              });

directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('panel'));

var request = {
    origin: 'Chicago',
    destination: 'New York',
    travelMode: google.maps.TravelMode.TRANSIT
};
var temp;
directionsService.route(request,
                        function(response, status)
                        {
                           if (status == google.maps.DirectionsStatus.OK)
                            {
                           t=response.routes[0].copyrights;
                           temp=t;
                           alert(t);
                            directionsDisplay.setDirections(response);
                                  return t;

                            }
                        } );

     return temp;

};
4

1 回答 1

1

而不是在另一个函数中使用 returnValuevalue()作为变量,您必须在回调中调用另一个函数directionsService.route()并将t其作为参数传递给另一个函数。

value()请求方向服务是一个异步过程,返回时它还没有完成temp,这就是为什么temp仍然会是undefined

于 2012-12-14T22:12:11.953 回答