2012-12-14 34 views
-1

我該如何解析來自Google方向服務的響應? 我打電話從我的iOS WebView的JavaScript代碼,我想從Java腳本返回一些值到iOS。我可以看到響應,當我使用警報功能來顯示,但它不返回值。我認爲這可能是函數是回調函數。所以我該怎麼做 ?請告訴我解決如何解析並返回google方向服務響應?

這是我的代碼:

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; 

}; 
+0

你在哪裏調用value()? –

+0

我在iOS .m文件中調用了值,即NSString * function = [[NSString alloc] initWithString:@「value()」]; NSString * result = [webView stringByEvaluatingJavaScriptFromString:function]; – prabhu

回答

1

而不是使用的value()的的returnValue作爲變量內的另一個功能則必須調用directionsService.route()回調內部的其他功能,並通過t作爲參數到另一個功能。

請求爲DirectionsService是一個異步的過程中,還沒有結束的時候value()回報temp,這就是爲什麼temp仍將undefined