我们在开发的时候经常会跳转WebView来加载一些活动页面,有时候需要监听url来进行原生的跳转操作,除了JS交互我们还可以在url后面拼接原生需要的参数来进行逻辑的跳转。OC和JS交互后续再说,这篇文章主要说的是 怎么获取URL中的参数来进行后续的开发。最笨的方法就是字符串的截取,进行大量的判断然后取出来有用的参数。
现在一行代码就可以取出来url中包含的参数,方法如下:
//name: url中的参数名称
- (NSString *)getParamByName:(NSString *)name URLString:(NSString *)url {
NSError *error;
NSString *regTags=[[NSString alloc] initWithFormat:@"(^|&|\\?)+%@=+([^&]*)(&|$)", name];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
options:NSRegularExpressionCaseInsensitive
error:&error];
// 执行匹配的过程
NSArray *matches = [regex matchesInString:url
options:0
range:NSMakeRange(0, [url length])];
for (NSTextCheckingResult *match in matches) {
NSString *tagValue = [url substringWithRange:[match rangeAtIndex:2]]; // 分组2所对应的串
return tagValue;
}
return @"";
}
调用方法如下:
NSString *goodId = [self getParamByName:@"id" URLString:url];
goodId 取出来就是123456.
网友评论