js回调oc

下载 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];

你可能感兴趣的:(js回调oc)