आपके कोड से आपको रोकने के लिए 2 समस्याएं हैं। सबसे पहले, जब आप url को -loadURL पास करते हैं: प्राप्त करें: विधि, फेसबुक आईओएस एसडीके आपके असली यूआरएल आधार का पुनर्निर्माण करें। तो, आपके द्वारा पारित यूआरएल अंततः वेबव्यू में नहीं मिलेगा।
-(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 में एक विधि को लागू है । लेकिन आदेश मूल फेसबुक एसडीके काम करता है रखने के लिए, आप -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];
जो आप चाहते थे उसे करने के लिए।
स्रोत
2011-12-01 14:01:06
मुझे लगता है कि आप सिर्फ संवाद दृश्य का पुन: उपयोग करना चाहते हैं? –
एमएम मुझे नहीं पता कि पुन: उपयोग सही शब्द है या नहीं, लेकिन मैं सिर्फ UIWebView में एक खोलने के रूप में एक यूआरएल खोलना चाहता हूं। – EmptyStack