Ios 如何从URL获取参数
在我的应用程序中。当用户在safari浏览器中单击注册时,我将返回应用程序。在应用程序中,我收到url:Ios 如何从URL获取参数,ios,iphone,nsurl,Ios,Iphone,Nsurl,在我的应用程序中。当用户在safari浏览器中单击注册时,我将返回应用程序。在应用程序中,我收到url:myApp://?电子邮件=pjayesh999@gmail.com 我想从这个url获取电子邮件的价值。怎么做 我已经这样做了,但这给了我一个错误,没有找到关键值电子邮件: NSString *str=[url valueForKey:@"email"]; 尝试使用URL。查询 NSString *str=url.query; 其中Url是NSUrl的对象 URLParser *pars
myApp://?电子邮件=pjayesh999@gmail.com
我想从这个url获取电子邮件的价值。怎么做
我已经这样做了,但这给了我一个错误,没有找到关键值电子邮件:
NSString *str=[url valueForKey:@"email"];
尝试使用URL。查询
NSString *str=url.query;
其中Url是NSUrl的对象
URLParser *parser = [[[URLParser alloc] initWithURLString:@"myApp://?email=pjayesh999@gmail.com"] autorelease];
NSString *emailVal = [parser valueForVariable:@"email"];
使用下面给出的NSScanner类URLParser.h
@interface URLParser : NSObject {
NSArray *variables;
}
@property (nonatomic, retain) NSArray *variables;
- (id)initWithURLString:(NSString *)url;
- (NSString *)valueForVariable:(NSString *)varName;
@end
URLParser.m
@implementation URLParser
@synthesize variables;
- (id) initWithURLString:(NSString *)url{
self = [super init];
if (self != nil) {
NSString *string = url;
NSScanner *scanner = [NSScanner scannerWithString:string];
[scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"&?"]];
NSString *tempString;
NSMutableArray *vars = [NSMutableArray new];
[scanner scanUpToString:@"?" intoString:nil]; //ignore the beginning of the string and skip to the vars
while ([scanner scanUpToString:@"&" intoString:&tempString]) {
[vars addObject:[tempString copy]];
}
self.variables = vars;
[vars release];
}
return self;
}
- (NSString *)valueForVariable:(NSString *)varName {
for (NSString *var in self.variables) {
if ([var length] > [varName length]+1 && [[var substringWithRange:NSMakeRange(0, [varName length]+1)] isEqualToString:[varName stringByAppendingString:@"="]]) {
NSString *varValue = [var substringFromIndex:[varName length]+1];
return varValue;
}
}
return nil;
}
- (void) dealloc{
self.variables = nil;
[super dealloc];
}
@end
检查这个答案
这是你真正需要的
最好的您也可以使用以下代码
NSString *strComplete = @"myApp://?email=pjayesh999@gmail.com";
NSArray *array = [strComplete componentsSeparatedByString:@"?"];
NSLog(@"%@",array);
NSString *strSecond = [array objectAtIndex:1];
NSLog(@"%@",strSecond);
如果对您有帮助,请尝试此选项。请查看以下链接,您可能会找到答案[there][1][1]: