使用IOS加载JS函数stringByEvaluatingJavaScriptFromString

时间:2014-07-12 11:33:28

标签: javascript ios objective-c

我有一个简单的javascript函数,其中包含两个用于地理位置的变量。我需要将我在iOS应用程序中已有的两个变量传递给这个javascript函数。

当我在浏览器中通过控制台发送代码时,一切正常:

geoCallBackSuccess({coords:{'longitude':9.598470,'latitude':50.903697}})

我的代码是否正确?

在模拟器中,我认为没有效果......

NSString * param  = @"{coords:{'longitude':9.598470,'latitude':50.903697}}";
NSString * jsCallBack = [NSString stringWithFormat:@"geoCallBackSuccess(%@)",param];
NSLog(@"viewDidLoad - jsCallBack: %@", jsCallBack);
[self.offerUrl stringByEvaluatingJavaScriptFromString:jsCallBack];

日志:

  

viewDidLoad - jsCallBack:   geoCallBackSuccess({坐标:{'经度':9.598470,'纬度':50.903697}})

例如,这对我有用:

[self.offerUrl  stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"anzeige\").innerHTML=\"Hello World\";"];

我想和我在Android中做的一样:

@java...

public void getLocation() {
// magic
if (locationOk) { 
   webview.loadUrl("javascript:geoCallBackSuccess({coords:{'longitude':9.598470,'latitude':50.903697}})");
} else { webview.loadUrl("javascript:geoCallBackError({code:})");
}
}

由于

1 个答案:

答案 0 :(得分:0)

我相信你只缺少字符串中的一个半冒号,在函数名后面用分号 -

NSString * jsCallBack = [NSString stringWithFormat:@"geoCallBackSuccess(%@);",param];