无法加载在iOS UIWebView的内部充分的Facebook评论插件(Unable to loa

2019-08-17 21:45发布

我有一个简单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浏览器,我可以查看整个注释。

Answer 1:

您可以使用此代码显示在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网址

这可以帮助你



Answer 2:

你需要指定一个基本URL

[webView loadHTMLString:html baseURL:[NSURL URLWithString:@"http://www.example.com"]];


Answer 3:

@Howard你可以使用http://www.facebook.com/plugins/comments.php?href=http://www.google.com” SCROLLING = '是' 的个人资料= '是' FRAMEBORDER = '0' 的风格= “边界:无; 溢出:隐藏; 宽度:300像素; 高度:30像素;” 数据HREF = ' http://www.google.com 'ALLOWTRANSPARENCY ='真'>”



Answer 4:

这里同样的问题。 解决的办法是不使用本地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的高度评论查看总是沦为“身高:160”。 显然,这是因为“all.js” Facebook的脚本(相应于这个问题 )。



文章来源: Unable to load full Facebook comment plugins inside an iOS UIWebView