0

我需要为 iPad 制作一个简单的 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 有问题?)
  • 如果我将阻止此页面的所有链接,我如何在会话结束时允许注销操作?

提前致谢!

4

2 回答 2

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;

}
于 2013-02-25T14:52:00.707 回答
1

我以前做过类似的事情,我会建议类似的事情

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

这也可能是一个更安全的选择,因为它仅限于域,而不仅仅是在完整 URL 路径中的任何位置对单词 facebook 进行关键字检查。

你可以更花哨一点,在“http://”之后和第二个“/”之前的任何地方检查“facebook.com”。也可以使用 NSURL 的 baseURL 方法来帮助这里。

另外,您确定您的 UIWebView 委托设置正确吗?

于 2013-02-25T15:47:15.137 回答