有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