-1

Googleディレクションサービスからの応答を解析するにはどうすればよいですか?iOS WebViewからjavascriptコードを呼び出していますが、javascriptから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

のreturnValueをvalue()別の関数内の変数として使用する代わりに、のコールバック内で他の関数を呼び出し、引数として他の関数にdirectionsService.route()渡す必要があります。t

value()DirectionsServiceのリクエストは非同期プロセスであり、 returnsの時点ではまだ完了していません。tempそのため、まだ終了しtempますundefined

于 2012-12-14T22:12:11.953 に答える