有2個問題阻止你從你的代碼。首先,當你傳遞一個url到-loadURL:get:方法時,Facebook iOS SDK會重建你的真實網址庫。所以,你傳遞的url最終不會進入webview。你需要做的是實現這樣的FBDialog.m的方法:
-(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;
委託方法,並與一個替代你做出實施。但爲了保持原有的Facebook SDK工作,你需要內-loadURL下面的代碼添加到FBDialog.m
_webView.delegate = self;
:得到:方法,這行
[_webView loadRequest:request];
終於之前,需要實現類
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
自己,並使用
FBDialog *dlg = [FBDialog new];
[dlg hackLoadURL: yourExpectUrl withDelegate: self];
做你想做的事。
我假設你只是想重用對話視圖的權利? –
嗯,我不知道重用是否是正確的術語,但我只想打開一個URL,就像在UIWebView中打開一個URL一樣。 – EmptyStack