gpt4 book ai didi

iphone - Facebook iOS - handleOpenURL 和 Tabbar 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:35 26 4
gpt4 key购买 nike

我很难让 Facebook 登录回到我的应用程序中的正确 View 并调用适当的 facebook 函数。

在这个例子中,Facebook 有简单的 [controller facebook] 这是他们开始的 View 。我正在使用标签栏应用程序,所以我没有必要的引用。我做了一个指向所需 View 的指针并使用了它......它正确打开但不会调用任何与 facebook 关联的方法,特别是:

(void)fbDidLogin;

(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [[*NotReferencedViewController* facebook] handleOpenURL:url];
}

还有其他人遇到过这个吗?

最佳答案

不确定您在谈论什么示例,但您应该在中心位置创建和存储您的 Facebook 对象,例如您的模型或 UIApplicationDelegate。然后它可以通过单例访问,因此您始终可以访问它,例如:

[[UIApplication sharedApplication] delegate].facebook

因此您可以从任何 View Controller 需要它的地方访问 facebook 对象。

当你做类似的事情时

NSArray* permissions =  [[NSArray arrayWithObjects:@"email", @"read_stream", @"publish_stream", nil] retain];

[facebook authorize:permissions delegate:self];

指定 delegate:self 意味着您将在该类中实现方法,Facebook 可以调用这些方法来通知您某些事件。其中一种方法是 fbDidLogin,您可以在那里做任何您需要做的事情:

-(void)authorizeFacebook {
NSArray* permissions = [NSArray arrayWithObjects:@"email", @"read_stream", @"publish_stream", nil];

[facebook authorize:permissions delegate:self];
}

// if the authorization succeeds it will come back to your app and call the method below
-(void)fbDidLogin {
// switch view, call the facebook graph, or do whatever else you like
}

您可以在应用委托(delegate)本身或 View Controller 中执行此操作。

您可以通过检查 facebook SDK 的 .h 文件来查看 facebook 委托(delegate)方法:Facebook.h、FacebookRequest.h 等。

编辑

并且您的 handleOpenURL: 方法应该看起来与 fb 示例中的完全一样(假设您没有处理其他 url 方案):

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

return [facebook handleOpenURL:url];
}

http://developers.facebook.com/docs/guides/mobile/#ios

关于iphone - Facebook iOS - handleOpenURL 和 Tabbar 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com