下载 JSCallOC js 回调oc 密码: cpbq
PS.最好用一个UIWebViewController(这样可以拿个控制器都调用这个 都可以同事实现这个方法)
1.把JSCallOC拖到项目 或者po到项目中去
2.创建一个webVIew添加到控制器中
UIWebView *webView = [[UIWebView alloc]initWithFrame:[UIScreen mainScreen].bounds];
NSURL *url = [NSURL URLWithString:@"http:xxxxxx”];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
[self.view addSubview:webView];
JSContext *context =[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
context[@"jsClick"] = ^()
{
//这个是带参数的 也可以不带 自己喜欢 不带参数就直接声明一个方法就可以 这样在h5的页面就可以掉用这个方式实现跳转或者其他东西了
NSArray *args = [JSContext currentArguments];
for (JSValue *jsVal in args)
{
NSArray *array = [[jsVal toString] componentsSeparatedByString:@"_"];
NSString *str1=array[0];
NSString *str2=array[1];
NSLog(@"%@---%@",str1,str2);
}
NSLog(@"nihao");
};
3.给h5页面传参数 在JSContext *context =[_webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; 这个方法后面实现下面的代码就可以给那边传参数了
//取到本地的参数
NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
NSString *Tdid = [userDef stringForKey:@"Td_id"];
NSString *AccountID = [UserManager getMemberID];
//直接声明一个js的代码
NSString *GetTdid =[NSString stringWithFormat:@"var GetTdid = function(){return ('%@');}",Tdid];
NSString *GetAccountID =[NSString stringWithFormat:@"var GetAccount_id = function(){return ('%@');}",AccountID];
//执行这段js代码 让js端取到穿过的Tdid 和 AccountID
[_Context evaluateScript:GetTdid];
[_Context evaluateScript:GetAccountID];