1iOS调用js
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *json;
NSString *str = [webViewstringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"getTokenMobileCallback(%@);",json]];
NSLog(@"JS返回值:%@",str);
}
2js 调 iso ,ios 回调js
#import
#import
@protocol JSObjcDelegate
- (void)getTokenMobile;
@end
@interface WebViewController : UIViewController
@property (nonatomic, strong) JSContext *jsContext;
@property (strong, nonatomic) UIWebView *webView;
@end
@implementation WebViewController
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
self.jsContext[@"bridgeObj"] = self;
self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
context.exception = exceptionValue;
NSLog(@"异常信息:%@", exceptionValue);
};
}
//js 调用的方法
- (void)getTokenMobile
{
NSLog(@"call");
// 之后在回调js的方法Callback把内容传出去
JSValue *ocCallback = self.jsContext[@"ocCallback"];
//传值给web端
NSString *token;
NSString *mobile;
NSDictionary *dic = @{@"mobile":mobile,@"token":token};
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
NSString* str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
//回调js方法
[ocCallback callWithArguments:@[str]];
}
@end
JS与OC交互
<script>
var ocCallback = function(str)
{
alert(str);
}
</script>