4

我有一个简单ViewController的在 UIWebView 中加载 FB 评论插件

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIWebView * webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320.0f, 1505.0f)];

    NSString * html = @"\
    <!DOCTYPE html>\
    <html xmlns:fb='http://ogp.me/ns/fb#'>\
    <head>\
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>\
    </head>\
    <body style='background-color:red;'>\
    \
    <div id='fb-root'></div>\
    <script>(function(d, s, id) {\
    var js, fjs = d.getElementsByTagName(s)[0];\
    if (d.getElementById(id)) return;\
    js = d.createElement(s); js.id = id;\
    js.src = 'http://connect.facebook.net/en_US/all.js#xfbml=1&appId=xxx';\
    fjs.parentNode.insertBefore(js, fjs);\
    }(document, 'script', 'facebook-jssdk'));</script>\
    \
    <fb:comments href='http://example.com' num_posts='10'></fb:comments>\
    \
    </body>\
    </html>\
    ";

    [webView loadHTMLString:html baseURL:nil];
    [self.view addSubview:webView];

我可以看到正在加载的评论,但只是高度很奇怪,似乎自动调整大小失败了?如果我使用移动 Safari,我可以查看全部评论。

模拟器截图

4

4 回答 4

4

您可以使用此代码在 iOS UIWebview 中显示 fb 评论

  UIWebView *fbWebview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 1505)];
  [fbWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.facebook.com/Levis"]]];

CGRect scrollViewFrame = CGRectMake(0, 0, 320, 1024);
UIScrollView  *scrollViewMain = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
CGSize scrollViewContentSize = CGSizeMake(320, 1505);
[scrollViewMain setContentSize:scrollViewContentSize];
[scrollViewMain setBounces:NO];
[scrollViewMain setScrollEnabled:YES];
[scrollViewMain setShowsVerticalScrollIndicator:YES];

[scrollViewMain setBackgroundColor:[UIColor redColor]];
[scrollViewMain addSubview:fbWebview];

[self.view addSubview:scrollViewMain];

而不是“ https://www.facebook.com/Levis ”使用您的 FB URL

这可能会帮助你

于 2013-03-28T04:05:15.723 回答
2

您需要指定一个 baseURL

[webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://www.example.com"]];
于 2013-03-26T07:10:05.803 回答
0

@Howard 你可以使用 http://www.facebook.com/plugins/comments.php?href=http://www.google.com' scrolling='yes' profile='yes' frameborder='0' style= '边界:无;溢出:隐藏;宽度:300 像素;高度:30 像素;' data-href=' http ://www.google.com'allowTransparency='true'>"

于 2013-05-17T11:42:38.570 回答
0

这里同样的问题。解决方案是不使用本地 HTML 文件(或 HTML 字符串)。将 HTML 文件上传到服务器并使用:

NSURL *url = [NSURL URLWithString:@"http://www.blablblab.com/yourfile.html"]; 
[self.webview loadRequest:[NSURLRequest requestWithURL:url]];

代替:

[self.webview loadHTMLString:localString baseURL:nil];

我还没有发现为什么文件在服务器上时布局会有所不同,但是当它是本地文件时,我的 Facebook 评论视图的高度总是降低到“height:160”。显然这是因为“all.js” facebook 脚本(根据这个问题)。

于 2013-10-23T18:49:25.237 回答