HTTP调用后从UIWeb视图返回主视图

时间:2011-07-28 09:35:02

标签: iphone objective-c xcode http soundcloud

我正在使用SoundCloud Cocoa Wrapper API。要将用户SoundCloud帐户连接到他们的Facebook帐户,我使用:

[scAPI performMethod:@"POST"
        onResource:@"connections"
    withParameters:[NSDictionary dictionaryWithObjectsAndKeys:
                    @"facebook_profile", @"service",
                    @"http://imc", @"redirect_uri",
                    @"touch", @"display", //optional, forces services to use the mobile auth page if available
                    nil]
           context:@"newConnection"
          userInfo:nil];

完全正常:我可以看到连接是在我的SoundCloud连接设置页面上进行的。事情是,一旦Facebook UIWebView页面完成它的工作,屏幕变白并且它不会返回到我的应用程序的视图。换句话说,UIWebView不会让消息“消失”。我该如何发送此消息?

有什么想法吗?

编辑1

其他一些可能有用的信息:

#define kCallbackURL              @"imc://oauth"      //remember that the 
myapp protocol also is set in the info.plist 
PLIST URL identifier                    com.imc 
PLIST URL Scheme Item 0          imc 

谢谢:)

1 个答案:

答案 0 :(得分:0)

在Twitter OAuth中,它以下列方式完成。用户按下UIWevView上的授权按钮后,将调用dismissModalViewControllerAnimated关闭该视图:

if ([_delegate respondsToSelector: @selector(OAuthTwitterController:authenticatedWithUsername:)]) [_delegate OAuthTwitterController: self authenticatedWithUsername: _engine.username];
[self performSelector: @selector(dismissModalViewControllerAnimated:) withObject: (id) kCFBooleanTrue afterDelay: 1.0];

所以我猜你应该这样写:

[self performSelector: @selector(dismissModalViewControllerAnimated:) withObject: (id) kCFBooleanTrue afterDelay: 1.0];

在使用网络视图完成作业后调用