最近需要用到OC监听JS方法并获取参数进行跳转,经过研究找到一个比较好用的,OC想监听到JS的调用需要双方遵守一个协议
JS端:
function sendCommandSLYZ(type,member,param) {
var url="protocol://"+type+":"+member+":"+param;
document.location = url;
}
需要在html端做操作时调用该方法,传递相应的参数
OC端:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
//此url解析规则自己定义
NSString* rurl=[[request URL] absoluteString];
if ([rurl hasPrefix:@"protocol://"]) {
NSArray *array=rurl.pathComponents;
//获取参数
NSString *allParam=array[1];
NSArray *tempArray=[allParam componentsSeparatedByString:@":"];
//member
NSString *member=tempArray[0];
//按钮的下标
NSInteger btnIdex=[tempArray[1] integerValue];
if ([member isEqualToString:@"110"]) {
if (btnIdex==0) {
//页面跳转
}
else if(btnIdex==1) {
//页面跳转
}
}
return false;
}
return true;
}
OC端在webView的代理方法中解析做操作。