在ios中使用Javascript

在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

这是我的ios代码

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;
}