2013-02-25 56 views
0

我需要爲iPad創建一個簡單的UIWebView,當用戶使用他們的帳戶登錄並能夠看到固定的Facebook公共頁面並能夠滾動此頁面,評論或喜歡帖子時發生事件但不能去除這個頁面以外的其他地方。所以我用限制UIWebView留在Facebook頁面

-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
    { 
     NSURL *url = request.URL; 
     NSString *urlString = url.absoluteString; 
     NSRange range = [urlString rangeOfString:@"http://m.facebook.com/groups/10621329941138"]; 
     if (range.location != NSNotFound) 
     { 
      return YES; 
     } 
     else 
     { 
      return NO; 
     } 
    } 

每次當用戶結束他的會話女主人將從此頁面註銷登錄頁面。一些實驗後,我堅持了幾個問題:

  • 在第一負載我收到了「您請求的頁面無法正確顯示現在......」 http://uaimage.com/image/5a0cccea
  • 註銷每次造成白屏(問題。 php?)
  • 如果我將阻止此頁面的所有鏈接我如何允許註銷操作結束會話?

在此先感謝!

回答

1

試試這個:

if ([url.host.lowercaseString rangeOfString:@"facebook"].location == NSNotFound) { 

    // Don't go since we're somewhere else now 
    return NO; 

} else { 

    // We can go here 
    return YES; 

} 
+0

同樣的效果。我有這個「您請求的頁面......」。它可以是什麼? – Alex 2013-02-25 15:32:42

+0

我似乎有一個大寫的F,用小寫的「臉書」嘗試一下,看看是否有幫助...... – jjv360 2013-02-25 15:43:10

+0

即使這樣做也可能是相當不安全的,因爲任何其他網站都可以將關鍵字「臉譜」放在它的路徑中,並允許它繼續與裝載。 – trumpetlicks 2013-02-25 15:45:04

1

之前,我已經做了這樣的事情,我會建議是這樣

return [urlString hasPrefix:@"http://m.facebook.com/"]; 

這可能是一個更安全的選擇爲好,因爲它限制了域對只需在完整URL的路徑中的任意位置使用關鍵字檢查facebook字樣。

你可能會更喜歡一些,並在「http://」之後的任何地方查看「facebook.com」,然後在第二個「/」之前查找。也可以使用NSURL的baseURL方法來幫助這裏。

此外,由於之前是你絕對確保你有你的UIWebView委託設置是否正確?

+0

是的代表設置 – Alex 2013-02-26 08:27:40