2012-09-27 39 views
1

它已經太長了,我正在努力解決這個問題。經過多次搜索,我決定在這裏發佈一個問題。iPad:無法加載UIWebview中的Facebook頁面牆

什麼我的應用程序確實

  1. 捕捉照片
  2. 上傳頁面的牆上的照片
  3. 顯示在上傳後UIWebview Facebook頁面壁完整

一切都按預期工作4天后:)突然出現了一些問題:(

代碼

NSString *facebookPageURL [email protected]"https://m.facebook.com/pages/<myPageName>/<myPageID>?v=wall" 
    UIWebView *webView = [[UIWebView alloc] initWithFrame:kAppFrame]; 
    [webView setUserInteractionEnabled:NO]; 
    [webView setBackgroundColor:[UIColor clearColor]]; 
    webView.delegate = self; 
    [webView setHidden: YES]; 

    NSURL *url = [NSURL URLWithString:[facebookPageURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] relativeToURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
    NSMutableURLRequest *request = nil; 

    if(url) 
     request = [NSMutableURLRequest requestWithURL:url];   
     [webView loadRequest:request]; 
    [self.view addSubview:webView]; 
    [webView reload]; 
    [self.view bringSubviewToFront:webView]; 
    webView = nil; 

方案

  1. 如果我在Safari中iOS Simulator打開URL facebookPageURL效果很好
  2. 如果我在Mac上的任何瀏覽器中打開URL它效果不錯
  3. webView我看到一個白色屏幕
  4. 如果我改變facebookPageURL刪除?v=wall?v=info我還是老樣子能夠看到的頁面。(不是黑屏ATLEAST)。

注意 1.我的Facebook頁面是不是unpublished和可見。 2.我已經交叉檢查了facebook頁面的權限。

我懷疑有一些事情在臉書上過夜了。

請指導。

+0

還有其他人有同樣的問題 - http://www.1771.in/browser-opening-url-to-facebook-wall-page-does-not-work-in-uiwebview-without-fb-login .html – thesummersign

+0

我遇到同樣的問題 – Hivebrain

+0

@Hivebrain請檢查接受的答案,這對我而言完全沒有任何進一步的解決方法。 – thesummersign

回答

0

看起來反覆無常的Facebook已經刪除了查看牆的權限。我得出這樣的結論,當我嘗試過同樣的事情在不同的項目中我得到兩個信息照片它變成了灰色

所以這裏的解決方案,人的痛苦或可能遭受的形式這個問題。

我得到響應字典來後

{"id":"<imge_id>","post_id":"<post_id>"}

http://www.facebook.com/photo.php?fbid=<imge_id>

,它就像一個魅力。

編輯:1 剛纔我想通了一個問題 對於有年齡限制的頁面,我們需要驗證其SSO不支持的UIWebView我的應用程序中。我不得不降級到不再使用SSO。現在它無論如何都可以工作。

剛剛添加here你可以找到如何整齊降級到non-sso機制。

0

我認爲它會幫助你

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    if ([(NSMutableURLRequest *)request respondsToSelector:@selector(setValue:forHTTPHeaderField:)]) { 
     [(NSMutableURLRequest *)request setValue:@" Safari/537.1" forHTTPHeaderField:@"User_Agent"]; 
    } 
} 
0

我打我的頭靠在牆上就這一個了一段時間。 iPhone上的相同請求和web視圖將拉起一個Facebook頁面,但會在iPad上產生一個空白頁面。更改用戶代理不能解決問題。

我能拉下HTML,因爲我一直在尋找使用stringWithContentsOfURL的頁面,然後手動加載HTML到web視圖周圍破解

你不想從調用[的NSString stringWithContentsofURL您主線程,如果你能幫助它,因爲它會阻止你的線程,直到結果回來。這是我在後臺運行,並更新我已經創建並添加到我的子視圖稱爲「facebookWebView」一個UIWebView的解決方案:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

    NSString *rawHTML = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.facebook.com/link.to.your.page.on.facebook"] encoding:NSASCIIStringEncoding error:nil]; 

     dispatch_async(dispatch_get_main_queue(), ^(void) { 


      [facebookWebView loadHTMLString:rawHTML baseURL:[NSURL URLWithString:@"http://www.facebook.com"]]; 



     }); 
    }); 

希望這有助於一些人。