在ios中使用Javascript
这是我的ios代码在ios中使用Javascript,javascript,ios,Javascript,Ios,这是我的ios代码 webView = [[UIWebView alloc] init]; webView.delegate = self; [webView loadHTMLString:@"<script type=\"text/javascript\" src=\"myFile.js\"></script>" baseURL:[NSURL fileURLWithPath:[NSBundle mainBundle].resour
webView = [[UIWebView alloc] init];
webView.delegate = self;
[webView loadHTMLString:@"<script type=\"text/javascript\" src=\"myFile.js\"></script>" baseURL:[NSURL fileURLWithPath:[NSBundle mainBundle].resourcePath]];
NSString* result =(NSString*)[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myFunction(%d,%d,%d)", num1,num2,num3]];
NSLog(@"RESULT1 : %@", result);
结果字符串中没有任何内容。我错了吗???加载webview后,您应该等待webViewDidFinishLoad:回调,当webview完成加载时调用该回调 像这样实现委托方法
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString* result = (NSString*)[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myFunction(%d,%d,%d)", num1,num2,num3]];
NSLog(@"RESULT1 : %@", result);
}
另外,检查myFile.js是否存在于目标->构建阶段的复制包资源下,而不是编译源代码部分
我不是JS专家,但JS函数的语法似乎很奇怪。通常语法是
function myFunction(a,b,c)
{
//Check if this alert gets called
alert('Function called');
return a*b*c;
}
请查收
希望有帮助 @Shob-Z是否检查baseURL:参数是否正确传递?您的.js是否也包含在参考资料中,而不是编译源代码?抱歉。。我在这里打错了。。但在我的代码中,它妨碍了你told@Shob-Z好的,webViewDidFinishLoad:接到电话了吗?是的。。有人叫它。。但是什么也没发生。。结果字符串仍然为空。@Shob-Z在JS函数myFunction中添加警报“Some msg”。检查是否触发了这些警报。如果没有调用它们,我怀疑JS文件路径不正确,并且没有加载脚本文件。
function myFunction(a,b,c)
{
//Check if this alert gets called
alert('Function called');
return a*b*c;
}