【问题标题】:When does a objective-c call to a javascript function gets called/executed and when not?什么时候调用/执行对javascript函数的objective-c调用,什么时候不调用?
【发布时间】:2012-05-14 22:54:57
【问题描述】:

javascript 是否被调用或执行取决于什么?准确地说,我有两个函数都以相同的方式调用:

[self.mapView stringByEvaluatingJavaScriptFromString:
              [NSString stringWithFormat:@"setMarkerAtPosition(%f,%f)",
                                           latlong.latitude, latlong.longitude]];

[self.mapView stringByEvaluatingJavaScriptFromString:@"test()"];

但是calculateRoute() 会被执行,而test() 不会。怎么会?

function setMarkerAtPosition(lat, long){
    var position = new google.maps.LatLng(lat, long);
    var marker = new google.maps.Marker({position: position, 
                                              map: map, 
                                            title:"Hello World!", 
                                         animation: google.maps.Animation.DROP});
    var content = "Ich bin eine normale Infobox";
    google.maps.event.addListener(marker, 'click', function() {
                              infowindow.setContent(content);
                              infowindow.open(map,marker); 
                              reportClickedMarker();
                              });

}

function test(){
    alert(currentPosition.latitude + ', ' + currentPosition.longitude);
}

谢谢

【问题讨论】:

  • 您可能需要显示调用这些函数的代码
  • 除函数名外都一样
  • 好吧,你没听懂我的意思。您需要包含调用这些函数的代码;否则,你的问题的答案是“你的猜测和我的一样好”。也不要将其作为评论包含在内,请使用此处涉及的其余代码实际编辑您的问题。谢谢;)
  • 我在任何地方都看不到“functionName”。我希望您发布实际代码而不是虚假示例。如果我遗漏了什么,我很抱歉,但在我看来,调用 calculateRoute 和 test 的实际代码不包括在内。例如,我们如何知道函数实际上被调用了?也许您有一个条件块导致您的代码甚至没有被触发?也许还有其他原因导致它无法被触发,而我们在您的 obj-c 中看不到?您是否尝试过用 test 替换 calculateRoute,以便代码的同一部分调用另一个函数?
  • 再次声明,[self.mapView stringByEvaluatingJavaScriptFromString:@"functionName()"]; 不是您的实际代码,如果您正在使用它,那么这就解释了为什么它不起作用,因为 functionName 不是您据称包含的函数你的 JavaScript。显示实际代码。

标签: javascript objective-c ios google-maps-api-3


【解决方案1】:

你不会在任何地方打电话给calculateRoute()test() 被调用是因为您使用以下方式调用它:

[self.mapView stringByEvaluatingJavaScriptFromString:@"test()"];

【讨论】:

  • 对不起,我已经连续编码了近 10 个小时,我复制了错误的部分,对不起!修好了
猜你喜欢
  • 2019-09-04
  • 2019-12-25
  • 2013-06-21
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
  • 2010-10-18
相关资源
最近更新 更多