我有一个简单的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:})");
}
}
由于
答案 0 :(得分:0)
我相信你只缺少字符串中的一个半冒号,在函数名后面用分号 -
NSString * jsCallBack = [NSString stringWithFormat:@"geoCallBackSuccess(%@);",param];