【问题标题】:Get a parameter from NSURL [duplicate]从 NSURL 获取参数 [重复]
【发布时间】:2014-03-15 12:58:59
【问题描述】:


在我的应用程序中,我需要从此 url 获取参数“access_token”和“user_id”:
https://oauth.vk.com/blank.html#access_token=b1b33dfaa3&expires_in=86400&user_id=311515

这是我在 webViewDidFinishLoad 中访问“user_id”参数的代码:

NSArray *userAr = [[[[webView request] URL] absoluteString] componentsSeparatedByString:@"&user_id="];

NSString *user_id = [userAr lastObject];


如何获得“access_token”?如果我使用相同的方法它不起作用......

【问题讨论】:

    标签: ios nsurl


    【解决方案1】:

    我在我的应用程序中也实现了相同的功能。

    如果你使用webView来使用这个

    NSURL* url = [[webView request] URL];
    
    NSString *string =  [[url absoluteString] stringByReplacingOccurrencesOfString:@"#" withString:@"&"]; (here it's tweak to chnage '#' to '&')
    
    NSArray *components = [string componentsSeparatedByString:@"&"];
    NSLog(@"queryParams %@", components); 
    

    基本上我们需要划分我们的URL in to two sub-part,根据这个你会得到main url and other part as list of parameter。`

    在这里您将获得与您的URL相关的所有参数

    希望这会对你有所帮助。

    【讨论】:

      【解决方案2】:

      尝试理解代码。 componentsSeparatedByString 创建一个由&user_id= 分隔的较小字符串数组。这意味着,您的输出将是:

      Array of ["https://oauth.vk.com/blank.html#access_token=b1b33dfaa3&expires_in=86400", "311515"]
      

      现在您明白为什么 lastObject 会为您提供 user_id 的值。现在尝试使用相同的方法来获取access_token 的值。

      提示:你需要设置&作为分隔符。

      【讨论】:

        【解决方案3】:

        我认为这些代码会对你有所帮助:

        NSArray *query = @"https://oauth.vk.com/blank.html#access_token=b1b33dfaa3&expires_in=86400&user_id=311515 ";
        NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
        for (NSString *param in [query componentsSeparatedByString:@"&"]) {
            NSArray *parts = [param componentsSeparatedByString:@"="];
            if([parts count] < 2) continue;
            [params setObject:[parts objectAtIndex:1] forKey:[parts objectAtIndex:0]];
        }
        

        【讨论】:

          猜你喜欢
          • 2013-04-09
          • 2015-04-06
          • 2012-02-02
          • 1970-01-01
          • 1970-01-01
          • 2017-07-10
          • 1970-01-01
          • 1970-01-01
          • 2022-01-18
          相关资源
          最近更新 更多