function sendClick()
{
getContent('test','content');
}
OC:
@property (weak, nonatomic) IBOutlet UIWebView *wv;
-(void)webViewDidStartLoad:(UIWebView *)webView
{
//开始加载网页调用此方法
//网页加载完成调用此方法
//首先创建JSContext 对象(此处通过当前webView的键获取到jscontext)
JSContext *context = [self.wv valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
//注册getContent方法 在javacscript中可以直接调用这个方法
context[@"getContent"] = ^() {
NSLog(@"+++++++Begin Log+++++++");
//所有的参数的按顺序取出相应的数值
NSArray *args = [JSContext currentArguments];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%@",[args objectAtIndex:0]] message:[NSString stringWithFormat:@"%@",[args objectAtIndex:1]] delegate:self cancelButtonTitle:@"收到" otherButtonTitles:nil];
[alertView show];
for (JSValue *jsVal in args) {
NSLog(@"%@", jsVal.toString);
}
//打开相机相册
[self openGallery];
NSLog(@"-------End Log-------");
};
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//网页加载完成调用此方法
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
//网页加载失败 调用此方法
}
/*
* 点击事件
* 调用javaScript的方法postStr(str1,str2)并取得返回值
* 输出返回值到控制台
*/
-(IBAction)IOS_JS:(id)sender
{
//NSString *str = [self.webview stringByEvaluatingJavaScriptFromString:@"postStr();"];
//要传递的参数一
NSString *str1 = @"我来自于oc";
//要传递的参数二
NSString *str2 = @"我来自于地球";
NSString *str = [self.wv stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"postStr('%@','%@');",str1,str2]];
NSLog(@"JS返回值:%@",str);
}
JSContext *context=[self.wv valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
NSString *alertJS=@"secondClick()"; //准备执行的js代码
[context evaluateScript:alertJS];//通过oc方法调用js的alert
//***********************
js
function postStr(str1,str2)
{
return str1+str2;
}