0

我正在Instagram API我的应用程序中实现 Sample iOS。我在Instagram Website. 我得到了client id一切secret,之后我在我的项目中实施。但是我不能分享我的照片。

我的代码是:

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.title = @"Instagram Login";

NSString* urlString = [kBaseURL stringByAppendingFormat:kAuthenticationURL,kClientID,kRedirectURI];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];

NSLog(@"%@",urlString);
NSLog(@"%@",request);

if (![UIUtils checkNetworkConnection])
    return;

[_webView loadRequest:request];
}

#pragma mark -- WebView Delegate

  - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request       navigationType:(UIWebViewNavigationType)navigationType
 {
NSString* urlString = [[request URL] absoluteString];
NSURL *Url = [request URL];
NSArray *UrlParts = [Url pathComponents];

if ([UrlParts count] == 1)
{
    NSRange tokenParam = [urlString rangeOfString:kAccessToken];
    if (tokenParam.location != NSNotFound)
    {
        NSString* token = [urlString substringFromIndex: NSMaxRange(tokenParam)];
        // If there are more args, don't include them in the token:
        NSRange endRange = [token rangeOfString: @"&"];

        if (endRange.location != NSNotFound)
            token = [token substringToIndex: endRange.location];

        if ([token length] > 0 )
        {
            // call the method to fetch the user's Instagram info using access token
            [_gAppData getUserInstagramWithAccessToken:token];
        }
    }
    else
    {
        DLog(@"rejected case, user denied request");
    }
    return NO;
}
return YES;
}

- (void) webViewDidStartLoad:(UIWebView *)webView
{
   [_gAppDelegate showLoadingView:YES];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
   [_gAppDelegate showLoadingView:NO];
}

 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
DLog(@"Code : %d \nError : %@",error.code, error.description);
//Error : Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted"
if (error.code == 102)
    return;
if (error.code == -1009 || error.code == -1005)
{
    //        _completion(kNetworkFail,kPleaseCheckYourInternetConnection);
}
else
{
    //        _completion(kError,error.description);
}
[UIUtils networkFailureMessage];
}

我的项目中显示以下错误日志:

headers: (null) }
2014-11-18 16:42:07.128 InstragramSample[376:27732] -[SignInViewController webView:didFailLoadWithError:] [Line 94] Code : 101 
Error : Error Domain=WebKitErrorDomain Code=101 "The URL can’t be shown" UserInfo=0x1551cd30 {NSErrorFailingURLKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSErrorFailingURLStringKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSLocalizedDescription=The URL can’t be shown}
2014-11-18 16:42:07.344 InstragramSample[376:27732] -[SignInViewController webView:didFailLoadWithError:] [Line 94] Code : 102 
Error : Error Domain=WebKitErrorDomain Code=102 "Frame load interrupted" UserInfo=0x16f38000 {NSErrorFailingURLKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSErrorFailingURLStringKey=ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8, NSLocalizedDescription=Frame load interrupted}
4

1 回答 1

0

错误非常明确: webview 无法加载 URL ige99d3bcd754b49b6ad543375c4a3edaa://authorize#access_token=1558091028.e99d3bc.889f10ef7ff64fc8938ed6de9d8978f8

您尝试构建和解析 URL 的方式存在根本问题。花点时间重新查看NSURL和的文档NSURLComponents

于 2014-11-18T11:23:39.460 回答