在下面的代码中,我们从c#调用JavaScript函数来计算使用谷歌地图路由服务从A点到达B点的时间。 (calculateTripTime)这个函数应该返回一个数组,其持续时间从A点到B点(目前只填充1个持续时间)但它返回' null'。为什么它会返回' null'如何从JavaScript到C#获得所需的回报?
当我调用以下函数时,它会像它应该的那样返回0。所以代码应该'工作
returnNumber()
{
return 0
}
C#代码:
public void DoStuff()
{
if (webBrowser.InvokeRequired)
{
webBrowser.Invoke((MethodInvoker)delegate
{
object o = webBrowser.Document.InvokeScript("calculateTripTime", new object[] { "Amsterdam", "Zwolle" });
MessageBox.Show(o.ToString());
});
}
else
{
object o = webBrowser.Document.InvokeScript("calculateTripTime", new object[] { "Amsterdam", "Zwolle" });
MessageBox.Show(o.ToString());
}
}
Javascript:
function calculateTripTime(start, end)
{
var service = new google.maps.DistanceMatrixService;
service.getDistanceMatrix(
{
origins: [start],
destinations: [end],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
},
function (response, status)
{
alert('duration filled');
var originList = response.originAddresses;
var destinationList = response.destinationAddresses;
var results = response.rows[0].elements[0];
return results.duration.value
});
}