我可以在FBDialog或FBConnect中打开URL(Facebook页面)吗?



我正在努力找到这个。我可以在FBDialog中打开URL或在FBConnect中使用某些东西。我试着这样做。但它似乎不起作用。

FBDialog *dlg = [FBDialog new];
[dlg loadURL:@"http://www.facebook.com/pages/Apple-Inc/137947732957611" get:nil];

我甚至不知道这是否可能。你们能帮帮我吗?

有两个问题阻止你的代码。首先,当你将url传递给-loadURL:get:方法时,Facebook iOS SDK会基于你的url重新构建真实的url。所以,你传递的url最终不会进入webview。你需要做的是在FBDialog中实现一个方法。我像这样:

-(void)hackLoadURL:(NSString*)url withDelegate:(id)delegate {
    _webView.delegate = delegate;
    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
}
第二个问题是你需要破解
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

delegate方法并替换为您所实现的方法。但是为了保持原始的Facebook SDK工作,您需要将以下代码添加到FBDialog.m

_webView.delegate = self;

在-loadURL:get:方法中,并且在这行

之前
[_webView loadRequest:request];
最后,您需要实现
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
在课堂上使用

,并使用

FBDialog *dlg = [FBDialog new];
[dlg hackLoadURL: yourExpectUrl withDelegate: self];

最新更新