ios中objective-c与js的交互
原始出处:http://mkhgg.blog.51cto.com/1741572/752962
就方便多了,(ps:MacOS中有貌似)
stringByEvaluatingJavaScriptFromString:后面接的是js中的方法名。这个函数的返回值就是所调用js方法
1 function testFunc(cmd,parameter1) 2 { 3 alert(1); 4 document.write(Date()); 5 document.location="objc://"+cmd+":/"+parameter1; //cmd代表objective-c中的的方法名,parameter1自然就是参数了 6 }
1 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest: 2 (NSURLRequest*)request navigationType: 3 (UIWebViewNavigationType)navigationType //这个方法是网页中的每一个请求都会被触发的 4 { 5 NSString *urlString = [[request URL] absoluteString]; 6 NSArray *urlComps = [urlString 7 componentsSeparatedByString:@"://"]; 8 if([urlComps count] && [[urlComps objectAtIndex:0] 9 isEqualToString:@"objc"]) 10 { 11 NSArray *arrFucnameAndParameter = [(NSString*)[urlComps
12 objectAtIndex:1] componentsSeparatedByString:@":/"]; 13 NSString *funcStr = [arrFucnameAndParameter objectAtIndex:0]; 14 if (1 == [arrFucnameAndParameter count]) 15 { 16 // 没有参数 17 if([funcStr isEqualToString:@"doFunc1"]) 18 { 19 /*调用本地函数1*/ 20 NSLog(@"doFunc1"); 21 } 22 } 23 else if(2 == [arrFucnameAndParameter count]) 24 { 25 //有参数的 26 if([funcStr isEqualToString:@"doFunc1"] && 27 [arrFucnameAndParameter objectAtIndex:1]) 28 { 29 /*调用本地函数1*/ 30 NSLog(@"doFunc1:parameter"); 31 } 32 } 33 return NO; 34 }; 35 return YES; 36 }
stringByEvaluatingJavaScriptFromString:这个弯,用
stringByEvaluatingJavaScriptFromString:
函数去掉js的方法,把返回值当做js方法中的参数形式传回去给
js。这个可以有,呵呵~
本文出自 “命苦” 博客,请务必保留此出处http://mkhgg.blog.51cto.com/1741572/752962
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。