2011-11-26 13 views
5

私はこれを見つけるのに苦労しています。 FBDialogでURLを開くことも、FBConnectで何かを使用することもできます。私は次のようにそれをやろうとしました。しかし、それは動作していないようです。FDBonnectのFBDialogなどでURL(Facebookページ)を開くことはできますか?

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

これが可能かどうかはわかりません。みんな助けてくれますか?

+0

ダイアログビューを正しく再利用したいと思いますか? –

+1

私は再利用が適切な用語であるかどうかわかりませんが、URLをUIWebViewで開かれているものと同じように開くだけです。 – EmptyStack

答えて

3

コードからあなたを防ぐために2つの問題があります。まず、-loadURL:get:メソッドにURLを渡すと、FacebookのiOS SDKが実際のURLベースを再構築します。したがって、あなたが渡したURLは最終的にwebviewに入りません。

-(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; 

デリゲートメソッドをハックする必要があることですし、実装を行うものと交換:何をする必要があると、このようなFBDialog.mのメソッドを実装しています。しかし、元のFacebook SDKが動作保つために、あなたは-loadURL内FBDialog.m

_webView.delegate = self; 

にコードの下に追加する必要があります。get:最後にメソッドを、この行の前に

[_webView loadRequest:request]; 

、あなたはあなたのクラスで

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 

自分を実装する必要があり、使用

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

あなたが望むことをする。

関連する問題